R 当用户选择一列时,按两列对数据帧进行排序

R 当用户选择一列时,按两列对数据帧进行排序,r,sorting,shiny,R,Sorting,Shiny,我想按两列对数据帧进行排序,第一列是factor,第二列是numeric,但这是在shinny中选择的 当我将这一行与指定的列一起使用时,它工作得很好 iris1<-iris[with(iris,order(Species,Sepal.Length,decreasing = T)), ] 请尝试使用get()将字符串转换为列名: col <- "Sepal.Width" iris[with(iris, order(Species, get(col), decreasing = T

我想按两列对数据帧进行排序,第一列是factor,第二列是numeric,但这是在shinny中选择的

当我将这一行与指定的列一起使用时,它工作得很好

 iris1<-iris[with(iris,order(Species,Sepal.Length,decreasing = T)), ]
请尝试使用
get()
将字符串转换为列名:

col <- "Sepal.Width"
iris[with(iris, order(Species, get(col), decreasing = TRUE)), ]

col当用户没有选择col()时,col()指的是哪个列?Sepal.Length作为默认值存在吗?很好,我认为可能是没有引号的问题物种和带引号的反应值,但不知道从那里开始:)@TomasH
col()
是base R中的一个函数,我将避免使用现有函数名作为变量。
Error in order(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,  : 
  argument lengths differ
col <- "Sepal.Width"
iris[with(iris, order(Species, get(col), decreasing = TRUE)), ]