For 循环创建列表

For loop to create lists

假设您有以下数据框:

data <- data.frame(a=runif(n=348), b=runif(n=348), c=runif(n=348))

然后假设您想为每一列应用 bld.mbb.bootstrap 函数(来自 forecast 包)。

对于一列,代码将如下所示:

reps <- 500L
sim <- bld.mbb.bootstrap(data$a, reps)

其中returns500个列表。

问题1:如何更改所有名称?说迭​​代#i(在列表内)。

问题 2:我想制作一个 for 循环,对数据框中的所有列执行“模拟”。所以我认为它会像这样:

for (i in names(data)){

sim <- bld.mbb.bootstrap(data$i, reps)

}

如何创建一个列表来存储(在本例中为 3 个)列表?

我想要一个列表,其中包含 3 个以变量命名的列表:a、b 和 c。

其中 a、b、c 是包含迭代的列表。

提前致谢!

使用 lapply

base R 方法
lapply(data, function(x) bld.mbb.bootstrap(x, reps))

setNames(lapply(colnames(data), function(x) 
  bld.mbb.bootstrap(data[,x], reps)), colnames(data))