0
假設我有,我已經根據率排序,使得它現在看起來是這樣的一個數據幀:的R - 功能根據等級獲取價值
Name Rate
A 10
D 11
C 11
E 12
B 13
F 14
我試圖寫一個函數,作爲參數的等級值(例如等級= 2)並輸出相應的名稱,使得如果等級中存在關係,則會輸出按字母順序排列的名稱。
在這種情況下,數據應看起來像這樣:
Name Rate Rank
A 10 1
C 11 2
D 11 3
E 12 4
B 13 5
F NA 6
使得秩= 2將輸出 「C」(未d) 和秩= 5將輸出 「B」
假設功能的級別輸入被稱爲「民」,這是我一直試圖做的事:
rankName <- df[!is.na(df[,2]),]
rankName <- sort(rankName[,2],) #sorting according to Rate
rank<-seq(1,length(rankName),by=1) #creating a sequence for rank
rankName <- cbind(rankHosp,rank) #combining rankName & rank seq.
comp <- rankName[rankName[,3]==num,] #finding rate value where rank = num
rankName <- rankName[rankName[,2]==comp,] #finding rows where rates are
#equal at that rank
rankName<-rankName$Name #extracting by Name
if (length(rankName)>1){
rankName <- sort(rankName)
rankName <- rankName[1]
}
,我發現了以下錯誤:
Error in `[.data.frame`(rankName, , 3) : undefined columns selected
我假設,無論我的錯誤,有一個簡單得多的方法來完成這個,但我一直沒能弄明白。
任何意見表示讚賞。謝謝!
'get_rank < - function(r)sort(df $ Name [match(df $ Rate,unique(df $ Rate))== r])[1]'?每個值的期望輸出是多少? – alistaire
我希望它輸出與排名相對應的名稱,因此對於排名= 2,它將是「C」,對於排名5,它將是「B」等。 –
因此rank = 3是否存在? – alistaire