2014-10-19 52 views
1

我需要從變量列表中找到最大值。但是,max()返回變量的內容而不是變量名稱。有沒有辦法獲得名稱而不是內容?R - 如何讓max()返回變量名稱而不是變量的內容?

快速示例代碼:

jan <- 0 
feb <- 0 
mar <- 0 

#for testing purposes - just select a random month and add 10 
s1 <- sample(1:3, 1) 
if (s1==1) { 
    jan <- jan + 10 
} 
if (s1==2) { 
    feb <- feb + 10 
} 
if (s1==3) { 
    mar <- mar + 10 
} 

final <- max(jan, feb, mar) 

final 

結果從,將永遠是10.這是沒有幫助的......有沒有辦法讓月/變量名稱,而不是回來了? (即「jan」而不是「10」)

謝謝!

+0

我也嘗試添加標籤列表中,但標籤不與MAX() – jdfinch3 2014-10-19 08:04:54

+2

您可以命名您的矢量元素,首先,如結轉:'揚< - c(jan = 0); feb < - c(feb = 0); mar < - c(mar = 0)',然後'final < - which.max(jan,feb,mar)'也將被命名。使用「名稱(最終)」訪問。 – jbaums 2014-10-19 08:22:00

+0

謝謝你的迴應! – jdfinch3 2014-10-19 08:37:59

回答

4

你可以嘗試:

c("jan", "feb", "mar")[which.max(c(jan, feb, mar))] 
#[1] "jan" 
+0

謝謝 - 這個作品完美。我曾嘗試子集,但顯然有錯誤... – jdfinch3 2014-10-19 08:37:30

+0

@ jdfinch3很高興知道它的作品。你能在你的文章中顯示子集的代碼嗎? – akrun 2014-10-19 08:40:11

+0

對不起,它已被刪除很長時間,因爲它沒有工作。我相信我的訂單倒退了。謝謝。 :) – jdfinch3 2014-10-19 20:44:01

相關問題