如何提取与 R 中最大行值对应的列值?

How can I extract column value corresponding to maximum row value in R?

我需要计算: a) 我的数据集(200 行)每一行的最大和最小(温度)值。 b) 每列对应于 'Jan'、'Feb' ... 'Dec'(12 列)。因此,我需要找到与最高和最低温度相关联的月份。

对于 (a) 这行得通:

 i= 1
  temp.max = NULL
  for(i in 1:200)
  { temp.max[i]<- max(temp.data[i,1:12])}

有人可以帮我解决 (b) 吗?

例如。如果数据集看起来像:

Jan Feb Mar Apr May Jun ... Dec
1     2   3   4  12   6       2

Max Value是12,我要输出,'May'是对应的月份

maxvals <- apply(mydata,1,max)
maxlocs <- colnames(mydata)[apply(mydata,1,which.max)]

min/which.min

也类似

顺便说一句,您对 (a) 的解决方案使您进入了 Patrick Burns R Inferno 的第二个圈子;效率低下在这个应用程序中可能无关紧要,但稍后可能会回来咬你......

max.col 对此很方便(我刚刚将你的第一行重复了 3 次以表明它适用于多行):

names(dat)[max.col(dat,ties.method="first")]
#[1] "May" "May" "May"

使用的数据:

dat <- setNames(data.frame(matrix(c(1,2,3,4,12,6,2),nrow=1)),month.abb[1:7])
dat <- dat[rep(1,3),]