0
對於下面數據幀輸入其相應的列名稱:檢索最大下降順序值與每每一行
data <- data.frame(A = c(19,2,3,22), B = c(1,20,12,15) , C = c(10,11,19,0), D = c(0,13,8,2), E = c(75,21,4,80))
A B C D E
1 19 1 10 0 75
2 2 20 11 13 21
3 3 12 19 8 4
4 22 15 0 2 80
我當前的代碼檢索每行的行如下的前三個最大輸出:
t(apply(data, 1, function(x) head(sort(x, decreasing = TRUE, na.last = NA), 3)))
[,1] [,2] [,3]
[1,] 75 19 10
[2,] 21 20 13
[3,] 19 12 8
[4,] 80 22 15
那麼因爲我需要下面的輸出檢索名稱標籤與每個最大值保存在旁邊的記者「max_value」N:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 75 E 19 A 10 C
[2,] 21 E 20 B 13 D
[3,] 19 C 12 B 8 D
[4,] 80 E 22 A 15 B
十分感謝很多 – jean
時也有類似的聲明/功能重複,我們可以mapply使用(函數(i)apply(data,1,function(x)i(head(sort(x,TRUE),3))),c(function(m) m),' '矩陣(t(a),ncol = 6,byrow = T)'會給我們與上面相同的結果 – Onyambu
@Onyambu謝謝你提到它。我知道。我只是這樣做,遵循OP結構/語法。我們也可以避免「應用(df,1,...)」(這對數據幀來說是非常糟糕的),這將是理想的解決方案。只要我有一些時間,我會盡快更新矢量化的替代方案 – Sotos