在每个组中订购一列

时间:2014-04-01 15:36:17

标签: r

我有一个像这样的大数据集:

 df <- data.frame(group = c(rep(1, 3), rep(5, 3)), member = c(30, 10, 22, 21, 44, 15)) 

 group member
 1     30
 1     10
 1     22
 5     21
 5     44
 5     15

...

我想在每个小组内订购会员。预期的输出应如下所示:

 group member
 1     10
 1     22
 1     30
 5     15
 5     21
 5     44

...

有没有人知道要实现这个目标?

2 个答案:

答案 0 :(得分:1)

你可以使用&#34;和&#34; function:第一个参数是你的数据帧,第二个参数是你想用它做的事情:按变量排序&#34; group&#34;然后由变量&#34;成员&#34;。

df[with(df,order(group,member)),]

答案 1 :(得分:0)

尝试使用plyr包中的ddply

> library(plyr)
> ddply(df, .(group), mutate, member=sort(member))
  group member
1     1     10
2     1     22
3     1     30
4     5     15
5     5     21
6     5     44