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))
假设您有以下数据框:
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
lapply(data, function(x) bld.mbb.bootstrap(x, reps))
或
setNames(lapply(colnames(data), function(x)
bld.mbb.bootstrap(data[,x], reps)), colnames(data))