2014-10-19 51 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

相关问题