Reordering and reshaping columns in R
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to sort a dataframe by column(s) in R
号
我有一个这样的数据集:
1 2 3 4 5 6 7 | x y z 1. 1 0.2 1.1 1 1.5 1.2 1 3. 1. 2 8.1 1.1 2 1.0 1.2 2 0.6 |
我想要的是先将数据集组织为x的函数,然后再组织为y的函数,这样
1 2 3 4 5 6 7 | x y z 1. 1 0.2 1. 2 8.1 1.1 1 1.5 1.1 2 1. 1.2 1 3. 1.2 2 0.6 |
号
我知道apply、mapply、taply等函数会重新组织数据集,但我必须承认,我并不真正了解它们之间的区别,也不真正了解如何应用于何时何地。
谢谢你的建议。
您可以使用
假设您的数据位于名为df的
1 2 3 4 5 6 7 8 | df[order(df$x, df$y), ] x y z 1 1.0 1 0.2 4 1.0 2 8.1 2 1.1 1 1.5 5 1.1 2 1.0 3 1.2 1 3.0 6 1.2 2 0.6 |
更多帮助请参阅
另一个注意事项是:整形通常指更改data.frame的形状,例如将其从宽格式转换为高格式。这不是这里要求的。
您也可以使用
1 2 3 4 5 6 7 8 9 10 | > library(plyr) > dat <- head(ChickWeight) > arrange(dat,weight,Time) weight Time Chick Diet 1 42 0 1 1 2 51 2 1 1 3 59 4 1 1 4 64 6 1 1 5 76 8 1 1 6 93 10 1 1 |
号
如果应用程序中的速度很重要,这是实现这一点的最快方法,而且仍然可读。这里的基准:如何按列对数据帧排序?