我有一个包含以下数据的数据框:

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,5,3,3,5
这可能吗?我知道这看起来很简单,但我无法在任何地方找到答案。

最佳答案

在基数R中非常简单:

z$wmax <- apply(z[, -c(1,6)],1, which.max)

实际上,这比您要求的少1,因为我排除了第一列,但可以通过添加一列轻松地对其进行补救。
z$max_col_n <- apply(z[, -c(1,6)],1, which.max) +1

关于r - 是否有pmax索引之类的东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8220343/

10-12 16:33