R使用变量对数据帧进行排序/排序

时间:2015-12-13 18:13:43

标签: r sorting columnsorting

我的问题类似于其他几个排序/排序问题,但不一样。问题基本上是当排序列存储在变量中时如何对R中的数据帧或数据表进行排序/排序。

说我有一个数据框

#create data frame
df <- data.frame(a=c(2,2,2,2,1,1,3,3,3,3,4,4),
                 b=c("c","c","a","a","a","b","b","d","d","d","e","e"),
                 c=c(123,223,1232,122,1232,345,243,456,5676,34,233,111),
                 stringsAsFactors=F)

订购数据框的方法有很多种。一些基本方法是:

#ordering dataframe by column 1
df[with(df,order(df[,1])), ]
#ordering dataframe by column name 'a'
df[with(df,order(df[,"a"])), ]

同样,使用数据表:

library(data.table)
dt <- as.data.table(df)
dt[order(a)]

但是,如果我要订购的列存储在变量var中,我该如何使用它?

#sort by column 1
var <- 1

#sort by column name "a"
var <- "a"

更进一步,我如何按多列排序?

#sort by columns 1 and 2
var1 <- 1
var2 <- 2

1 个答案:

答案 0 :(得分:1)

试试这个

df[order(df[[var]]),]
编辑感谢大卫 或者,如果您有多个条件

df[order(df[,var]),]