gpt4 book ai didi

r - 对多个向量应用 for 循环

转载 作者:行者123 更新时间:2023-12-02 00:54:21 26 4
gpt4 key购买 nike

我正在尝试迭代一个 for 循环,其中调用了 3 个不同的向量。更具体地说,我试图了解不同站点需要多长时间才能达到其承载能力。本质上,我想确定不同人群达到各自的承载能力需要多长时间。

截至目前,我已将其设置为在不同时间步成功打印丰度。

tspan <- 80
N <- matrix(0,tspan,1)
N[1] <- 20
K <- 13626
r <- 0.32

for (t in 2:tspan){
N[t] <- N[t-1]*exp(r*(1-N[t-1]/K))
print(N)
}

尽管这会导致同一向量的输出打印出 N=tspan 次。这里的最终目标是在不同 K 值的向量上迭代上述 for 循环:

K<-c(208, 543, 557, 831, 831, 878, 933, 970, 1022, 1039)

然后将所有这些存储在数据框中。我试过使用嵌套的 for 循环,但我不确定如何实现它,因为所有必要的值都是 1 等式中的引用。任何帮助将不胜感激。

最佳答案

你可以使用sapply

K <- c(208, 543, 557, 831, 831, 878, 933, 970, 1022, 1039)
out <- sapply(K, function(x) {
for (t in 2:tspan){
N[t] <- N[t-1]*exp(r*(1-N[t-1]/x))
} # ^ note the x instead of K here
N
})

结果

head(as.data.frame(out))
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#1 20.00000 20.00000 20.00000 20.00000 20.00000 20.00000 20.00000 20.00000 20.00000 20.00000
#2 26.70800 27.21983 27.22790 27.33125 27.33125 27.34252 27.35427 27.36143 27.37062 27.37342
#3 35.29968 36.88868 36.91432 37.24457 37.24457 37.28077 37.31856 37.34160 37.37119 37.38022
#4 46.04258 49.70798 49.76899 50.56016 50.56016 50.64751 50.73882 50.79455 50.86620 50.88810
#5 59.07051 66.47804 66.60632 68.28529 68.28529 68.47241 68.66838 68.78819 68.94243 68.98963
#6 74.28092 88.03152 88.28178 91.59706 91.59706 91.97116 92.36397 92.60462 92.91501 93.01011

关于r - 对多个向量应用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55563711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com