我想在R中使用order()函数按列对数据进行排序。
例如,下面的data.frame
set.seed(1)
mydata <-as.data.frame(cbind(NUM=seq(1:5),RES=runif(5,0,10)))
> with(data = mydata, mydata[order(RES),])
NUM RES
5 5 2.016819
1 1 2.655087
2 2 3.721239
3 3 5.728534
4 4 9.082078
没关系。但是,当我为列分配名称执行相同的操作时,却得到了意外的结果。
colname <- "RES"
> with(data = mydata, mydata[order(colname),])
NUM RES
1 1 2.655087
我想知道是否有人遇到过同样的问题和/或您是否有解决方案。提前感谢您的帮助。
使用get()
返回命名对象的值:
with(data = mydata, mydata[order(get(colname)),])
# NUM RES
#5 5 2.016819
#1 1 2.655087
#2 2 3.721239
#3 3 5.728534
#4 4 9.082078
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句