这是我的数据集:
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 )
答案 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
}
)
这将返回一个列表对象,其中每个元素都是给定树的绘图对象。