【发布时间】:2012-10-20 19:44:53
【问题描述】:
data = c(1,2,3,4)
names = c("foo", "bar", "baz", "yak")
d = data.frame(data, row.names=names)
这会返回:
data
foo 1
bar 2
baz 3
yak 4
现在,我想按列对这个数据框进行排序,而不会丢失附加的行名。所以,我的结果是:
data
yak 4
baz 3
bar 2
foo 1
我已经尝试过以下方法:
d[order(-d$data),],这当然只给了我一维列表。arrange(d, desc(data))来自plyr包,它会删除行名。-
用
重构帧o = order(-d$data)找出顺序,然后用data.frame(d[o,], row.names=rownames(d)[o])…这仍然给我留下了错误的列名。
有什么健全的方法可以做到这一点吗?
【问题讨论】: