我想使用多个基准、最低日温度和最高日温度来计算生长度日数。如果可能的话,我想不使用 for 循环来执行此操作以最小化我的代码。
bases <- c(40,45,50)
tmin <- runif(10,30,70)
tmax <- runif(10,55,95)
我想找出我拥有的十天假温度数据中每个基地的生长度日数。这 3 个基地中的每一个应该有 10 个输出值。
我尝试了 mapply,如下所示:
gdd_func <- function(tmin,tmax,bases){
(tmin + tmax)/2 - bases}
test <- mapply(gdd_func,tmin,tmax,bases)
这会产生错误的输出,老实说,我不知道它在做什么。我希望输出等于使用不同的基数运行上述函数 3 次。每个输出将有 10 个对应于不同基数的 gdd 值。我如何使用某种应用函数来做到这一点?或者我还需要其他东西吗?
我认为你应该将
tmin
和封装tmax
在 中list
,例如,只是为了好玩,即使这个问题已经得到了一个很好的答案,一个循环/ *应用免费的替代方案,利用回收:
以上产生与@ThomasIsCoding 的答案相同的输出。
outer
可能是这里最好的选择。