Sorting rows alphabetically

瘦欲@ 提交于 2019-11-26 04:55:50

问题


My data looks like,

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

How can I sort the rows to get something like

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

Thanks,


回答1:


t(apply(DF, 1, sort))

The t() function is necessary because row operations with the apply family of functions returns the results in column-major order.




回答2:


What did you try? This is really straight-forward and easy to solve with a simple loop.

> 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



回答3:


No plyr answer yet?!

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

library("plyr")

aaply(foo,1,sort)

Exactly the same as DWins answer except that you don't need t()




回答4:


Another fast base R option from Martin Morgan in Fastest way to select i-th highest value from row and assign to new column is

matrix(a[order(row(a), a, method="radix")], ncol=ncol(a))

Timings can be found here



来源:https://stackoverflow.com/questions/6063881/sorting-rows-alphabetically

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!