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])
…这仍然给我留下了错误的列名。
有什么理智的方法可以做到这一点吗?