5

私のデータは次のようになります

A    B    C    D
B    C    A    D
X    Y    M    Z
O    M    L    P

行を並べ替えて次のようなものを取得するにはどうすればよいですか?

A    B    C    D
A    B    C    D
M    X    Y    Z
L    M    O    P

ありがとう、

4

4 に答える 4

25
t(apply(DF, 1, sort))

このt()関数が必要なのは、apply一連の関数を使用した行操作が結果を列優先順で返すためです。

于 2011-05-19T19:53:03.647 に答える
6

何を試しましたか?これは非常に簡単で、単純なループで簡単に解決できます。

> s <- x
> for(i in 1:NROW(x)) {
+   s[i,] <- sort(s[i,])
+ }
> s
  V1 V2 V3 V4
1  A  B  C  D
2  A  B  C  D
3  M  X  Y  Z
4  L  M  O  P
于 2011-05-19T19:43:39.910 に答える
2

plyrまだ答えがない? !

foo <- matrix(sample(LETTERS,10^2,T),10,10)

library("plyr")

aaply(foo,1,sort)

必要がないことを除いて、DWinsの回答とまったく同じですt()

于 2011-05-20T08:05:41.267 に答える