如何为函数创建循环

how to make a loop for a function

这是我的数据集:

Tree     a    b       k
4412    17.54   14.88   0.0757
4413    53.85   5.89    0.03
4414    24.01   13.09   0.0681
4415    34.94   6.81    0.0341
4416    24.05   7.96    0.0436
4417    36.6    10.42   0.0524
4418    31.77   13.29   0.0663

我想为每棵树运行这个函数。我如何在 r 中创建一个循环?

a <- (DF$a)
b<- (DF$b)
k <- (DF$k)
t <- seq(100, 365,1)

y <- a*exp(-exp(b - k*t))
plot(y~t )

我们可以使用 lapply 和匿名函数来循环遍历数据集中的每棵树,生成绘图数据并收集绘图对象。假设您的数据集名为 df...

     t <- (seq(100, 365, 1))



     plot_list <-  lapply(split(df, df$Tree), function(x) {  


        y <- x[['a']] * exp(-exp(x[['b']] - x[['k']]*t))


        plot_data <- data.frame(t=t,y=y)

        plt <- plot(y~t, data = plot_data)
        plt
}
)

这将 return 一个列表对象,其中每个元素都是给定树的绘图对象。