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),]
,当然这只给了我一维列表。使用
plyr
包中的arrange(d, desc(data))
,但会删除行名。通过
o = order(-d$data)
找到排序顺序,然后使用data.frame(d[o,], row.names=rownames(d)[o])
...这仍然让我有错误的列名。
有没有什么明智的方法可以解决这个问题?