我的數據的樣子,行排序的字母順序
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
感謝,
我的數據的樣子,行排序的字母順序
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
感謝,
好吧,如果你使用Python和將您的數據列入清單列表中,如
my_data = [ [ A, B, C, D ],
[ B, C, A, D ],
[ X, Y, M, Z ],
[ O, M, L, P ] ]
你可能只是做一個簡單的列表理解像這樣:
sorted_lists = [sorted(l) for l in my_data]
但因爲你沒有指定語言或任何其他有用的信息,我不知道,如果這會有所幫助。
你試過了什麼?這個過程非常簡單,只需簡單的循環即可輕鬆解決。
> 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
t(apply(DF, 1, sort))
的t()
功能是必要的,因爲與apply
系列函數行操作返回列主順序的結果。
+1爲緊湊解決方案,並解釋了爲什麼t()是必要的 – 2011-05-19 20:14:49
除了解釋不太對 - 它不是列主要的順序,它是新的維度被添加到開始,而不是保持在原來的位置。 – hadley 2011-05-19 23:20:17
也許我不瞭解我們的差異。 'apply()'一次構建一列矩陣,對吧? – 2011-05-20 01:47:24
否plyr
答案沒有?
foo <- matrix(sample(LETTERS,10^2,T),10,10)
library("plyr")
aaply(foo,1,sort)
完全一樣DWins回答,只是你不需要t()
而且,如果你想在遞減順序進行排序,定義一個函數
mysort <- function(x){
sort(x, decreasing = TRUE)
}
的伎倆:
t(apply(vot, 1, FUN = function(x) mysort(x)))
它有一個'r'標籤。 – 2011-05-19 19:56:59
但是OP接受了Python的答案......我們生活在混亂的時代。 – 2011-05-19 20:09:09