R 有类似pmax索引的东西吗?
我有一个包含以下数据的数据框:R 有类似pmax索引的东西吗?,r,dataframe,R,Dataframe,我有一个包含以下数据的数据框: date=strptime(c(20110101,20110102,20110103,20110104,20110105,20110106),'%Y%m%d') rate1=c(1,2,3,4,5,6) rate2=c(2,1,3,6,8,4) rate3=c(4,1,3,6,8,3) rate4=c(7,8,9,2,1,8) z=data.frame(date,rate1,rate2,rate3,rate4) z$max=pmax(rate1,rate2,rat
date=strptime(c(20110101,20110102,20110103,20110104,20110105,20110106),'%Y%m%d')
rate1=c(1,2,3,4,5,6)
rate2=c(2,1,3,6,8,4)
rate3=c(4,1,3,6,8,3)
rate4=c(7,8,9,2,1,8)
z=data.frame(date,rate1,rate2,rate3,rate4)
z$max=pmax(rate1,rate2,rate3,rate4)
pmax函数允许我获取该记录的最大值,但我想知道如何获取该记录最大值的索引
如果z$max等于7,8,9,6,8,8
,我想得到5,5,3,3,5
这可能吗?我知道这看起来很简单,但我在任何地方都找不到答案。在R基中非常简单:
z$wmax <- apply(z[, -c(1,6)],1, which.max)
z$wmax您可以使用:
我想你的意思是你想要索引,但是你只使用了4个向量,所以要找到你想要的,你必须先找到索引,然后再加1。谢谢,非常简单。别忘了查看文档,因为该函数有一个参数ties.method=c(“随机”、“第一”、“最后”)
并且默认情况下使用方法random
。
z$max_col_n <- apply(z[, -c(1,6)],1, which.max) +1
> z$max = max.col(z[2:5])+1
> z
date rate1 rate2 rate3 rate4 max
1 2011-01-01 1 2 4 7 5
2 2011-01-02 2 1 1 8 5
3 2011-01-03 3 3 3 9 5
4 2011-01-04 4 6 6 2 3
5 2011-01-05 5 8 8 1 3
6 2011-01-06 6 4 3 8 5