私はこのような大きなデータセットを持っています:
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
...
誰もがこれを実現するためのアイデアを持っていますか?
回答:
回答№1は1"with"関数を使用することができます。最初の引数はデータフレームであり、2番目の引数は、変数 "グループ"、次に変数 "メンバ"による順序で行います。
df[with(df,order(group,member)),]
回答№2の場合は0
使用してみてください ddply
plyrパッケージから
> 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