简体   繁体   English

如何为一个函数做一个循环

[英]how to make a loop for a function

this is my dataset:这是我的数据集:

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

I want to run this function for each tree.我想为每棵树运行这个函数。 How i can make a loop in r?我如何在 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 )

We can use lapply with anonymous functions to loop through each Tree in the dataset , generate plot data and collect the plot object .我们可以使用带有匿名函数的lapply循环遍历数据集中的每个 Tree,生成绘图数据并收集绘图对象。 Assuming your dataset is named df ...假设您的数据集名为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
}
)

This will return a list object where every element is the plot object for a given tree.这将返回一个列表对象,其中每个元素都是给定树的绘图对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM