以编程方式排序data.frame()

时间:2012-02-03 17:27:06

标签: r

我正在使用以下方法对data.frame进行排序。

# Dummy data
dat <- data.frame(a=letters[1:26],b=runif(26),c=rnorm(26))
# Sort
dat <- dat[with(dat, order(-b)),]

我希望能够使用类似于粘贴的东西生成“-b”,以便我可以通过编程方式进行排序。

类似的东西:

dat <- dat[with(dat, order(paste("-b"))),]

我尝试了paste()cat()get()getElement()之类的内容,但无济于事。

2 个答案:

答案 0 :(得分:4)

怎么样?

sort.var <- 'b'
inverse <- TRUE
dat <- dat[order(dat[[sort.var]],decreasing=inverse),]

答案 1 :(得分:3)

你在自己身上做的比你需要的更难:

dat <- dat[order(dat[,"b"], decreasing=TRUE),]

现在您可以将列指定为字符串。