重新排序和重塑R中的列
可能重复:
如何按R中的列对数据框进行排序
我有一个看起来像这样的数据集:
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的函数进行组织
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
我知道应用,mapply,tapply等函数可以重新组织数据集,但我必须承认,我并不真正了解它们之间的差异,也没有真正理解如何应用哪个和哪些时间。
谢谢你的建议。
您可以使用order
功能订购您的数据。 不需要任何apply
家庭功能。
假设你的数据在一个名为df的数据data.frame
:
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
见?order
请求更多帮助。
在一个侧面说明:整体重塑指的是改变data.frame的形状,例如将其从宽转换为高格式。 这不是这里所要求的。
你也可以在plyr
使用这个arrange()
函数。 将desc()
中的变量包裹起来,以便对其他方向进行排序。
> 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
如果速度在您的应用程序中很重要,这是最快速的方法,它仍然可读。 这里的基准:如何按列排序数据框?
链接地址: http://www.djcxy.com/p/70843.html