如何为函数创建循环

时间:2015-09-09 12:11:36

标签: r equation

这是我的数据集:

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 )

1 个答案:

答案 0 :(得分:1)

我们可以使用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
}
)

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