slh*_*hck 28 sorting r dataframe
data = c(1,2,3,4)
names = c("foo", "bar", "baz", "yak")
d = data.frame(data, row.names=names)
Run Code Online (Sandbox Code Playgroud)
返回:
data
foo 1
bar 2
baz 3
yak 4
Run Code Online (Sandbox Code Playgroud)
现在,我想按列对此数据框进行排序,而不会丢失附加的行名称.所以,我的结果是:
data
yak 4
baz 3
bar 2
foo 1
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以下方法:
d[order(-d$data),],这当然只给我一维列表.
arrange(d, desc(data))从plyr包中删除行名称.
找出订单o = order(-d$data),然后重建框架
data.frame(d[o,], row.names=rownames(d)[o])
Run Code Online (Sandbox Code Playgroud)
...仍然留下错误的列名.
有没有理智的方法来做到这一点?
flo*_*del 38
你第一次尝试就差不多了,忘了使用drop = FALSE:
> d[order(-d$data), , drop = FALSE]
data
yak 4
baz 3
bar 2
foo 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17750 次 |
| 最近记录: |