0

df <- data.frame(x = rep(1:3, each = 3)
        , y = rep(1:3, 3)
        , z = round(rnorm(9), 2))

df
  x y     z
1 1 1  0.55
2 1 2  0.99
3 1 3 -2.32
4 2 1 -0.25
5 2 2  1.20
6 2 3 -0.38
7 3 1  1.07
8 3 2 -0.98
9 3 3 -1.09

zそれぞれの中でソートする方法はありますxか:

df.sort
  x y     z
1 1 3 -2.32
2 1 1  0.55
3 1 2  0.99
4 2 3 -0.38
5 2 1 -0.25
6 2 2  1.20
7 3 3 -1.09
8 3 2 -0.98
9 3 1  1.07

ありがとう!

4

2 に答える 2

1

その場で新しいdata.frameものを作成できます。

data.frame(df$x, df[order(df$z), c("y", "z")])
于 2012-10-25T06:12:28.237 に答える
1

x の各値内で z で並べ替えたい場合 (あなたの例が示しているものであり、実際にあなたの質問が導くように見えるものではなく、plyr を使用して配置することができます

library(plyr)
dfa <- arrange(df, x, z)

ここで行っているのは、最初に x で、次に z で並べ替えることです

于 2012-10-25T06:15:29.807 に答える