在我的代碼中,我想提取一系列列中的最后一個最大值,在資料幀上逐行迭代。問題是我的腳本只給了我第一次出現的最大值(在這種情況下第一列的名稱)。關于如何更新此行以獲得最后一個最大值的任何建議?
我的資料框如下所示:
A.trust B.trust C.trust D.trust E.trust F.trust G.trust H.trust I.trust J.trust K.trust L.trust M.trust
-999 -999 -999 -999 -999 -999 -999.0 -999.0 -999.0 -999 -999 -999 -999
-999 -999 -999 -999 -999 -999 0.5 -999.0 0.5 -999 -999 -999 -999
-999 -999 -999 -999 -999 -999 -999.0 -999.0 1.0 -999 -999 -999 -999
-999 -999 -999 -999 -999 -999 -999.0 -999.0 -999.0 -999 -999 -999 -999
-999 -999 -999 -999 -999 -999 -999.0 -999.0 -999.0 -999 -999 -999 -999
-999 -999 -999 -999 -999 -999 0.5 0.5 -999.0 -999 -999 -999 -999
我正在使用以下代碼
# return cols which hold maximum
nams <- names(test)[apply(test, 1 ,which.max)]
電流輸出
目前,nams變數中的值為:
"A.trust"
"G.trust"
"I.trust"
"A.trust"
"A.trust"
"G.trust"
所需輸出
我在nams變數中所需的值是這樣的:
"M.trust"
"I.trust"
"I.trust"
"M.trust"
"M.trust"
"H.trust"
輸入()
test = structure(list(A.trust = c(-999, -999, -999, -999, -999, -999),
B.trust = c(-999, -999, -999, -999, -999, -999),
C.trust = c(-999, -999, -999, -999, -999, -999),
D.trust = c(-999, -999, -999, -999, -999, -999),
E.trust = c(-999, -999, -999, -999, -999, -999),
F.trust = c(-999, -999, -999, -999, -999, -999),
G.trust = c(-999, 0.5, -999, -999, -999, 0.5),
H.trust = c(-999, -999, -999, -999, -999, 0.5),
I.trust = c(-999, 0.5, 1, -999, -999, -999),
J.trust = c(-999, -999, -999, -999, -999, -999),
K.trust = c(-999, -999, -999, -999, -999, -999),
L.trust = c(-999, -999, -999, -999, -999, -999),
M.trust = c(-999, -999, -999, -999, -999, -999)),
row.names = 600:605, class = "data.frame")
相關文章
以下帖子與我的問題有關,但我正在努力解決如何在我的腳本中進行此更改如何在 R 中的分組資料中找到某個觀察的最后一次出現?. 這是另一個相關的帖子which.max ties in R 的方法。任何幫助將不勝感激!
uj5u.com熱心網友回復:
names(rev(test))[apply(rev(test), 1, which.max)]
[1] "M.trust" "I.trust" "I.trust" "M.trust" "M.trust" "H.trust"
uj5u.com熱心網友回復:
另一種可能性(可能比@Skaqqs 的回答效率低):
names(test)[apply(test, 1, function(x) tail(which(x == max(x)), 1)]
uj5u.com熱心網友回復:
我們可以使用矢量化選項
names(test)[ncol(test):1][max.col(rev(test), "first")]
[1] "M.trust" "I.trust" "I.trust" "M.trust" "M.trust" "H.trust"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324586.html
