在R中的which.max命令

时间:2013-07-22 17:28:38

标签: r

我编写了一个代码,用于在第一个数据集的数量最大时计算第二个数据集的数量,但在某个纬度和经度的末尾,我得到的数字非常大,而不是第一个数据集。以下是代码的核心:

PW.storm <- array(NA,dim=c(length(lon1),length(lat1)))
for (i in 1:length(lon1)){
    for (j in 1:length(lat1)){
        for (k in 1:length(time)){
            t <- time.when.dat1.max <- which.max(abs(dat1[i,j,]))
            PW.storm[i,j] <- abs(dat2[i,j,t])
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的代码建议您不了解which.max返回的内容。你有:

time.when.dat1.max <- which.max(abs(dat1[i,j,]))

这不是“dat1最大的时间”。它是i和j条件下dat1第三维的索引。如果时间是第三维中的值,那么您需要使用它来获取时间值:

 time.when.dat1.max <- dat1[i,j, which.max(abs(dat1[i,j,]))]

如果我猜错了dat1对象的含义,那么你应该通过编辑问题来更好地描述数据设置。