我需要计算: a)我的数据集的每一行的最大和最小(温度)值(200个这样的行)。 b)每列对应于' Jan',' 2月' ......' 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
最大值为12.我需要输出,&#39;五月&#39;是相应的月份。
答案 0 :(得分:3)
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),]
答案 1 :(得分:0)
maxvals <- apply(mydata,1,max)
maxlocs <- colnames(mydata)[apply(mydata,1,which.max)]
,同样适用于min
/ which.min
顺便说一句,你对(a)的解决方案会让你进入Patrick Burns R Inferno的第二个圈子;效率低下可能在这个应用程序中无关紧要,但可能会在以后回来咬你......