For 循环创建列表

发布于 2025-01-09 19:09:33 字数 597 浏览 1 评论 0原文

假设您有以下数据框:

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)

返回 500 个列表。

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

问题 2:我想创建一个 for 循环,对数据框中的所有列进行“sim”操作。所以我认为它会像这样:

for (i in names(data)){

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

}

我怎样才能制作一个存储(在本例中为 3 个)列表的列表?

我想要一个包含 3 个列表的列表,其名称类似于变量:a、b 和 c。

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

提前致谢!

Suppose you have the following dataframe:

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

and then suppose that you would like to apply the bld.mbb.bootstrap function (from forecast package) for every column.

With one column the code will go like this:

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

Which returns a list of 500.

Question 1: How do I get to change all the names? To say iteration #i (inside the list).

Question 2: I want to make a for loop that does "sim" for all the columns in the dataframe. So I think it'd go like this:

for (i in names(data)){

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

}

How can I make a list that stores (in this case 3) lists?

I want a list that contains 3 lists named like the variable: a, b, and c.

where a, b, c are lists that contain the iterations.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷血 2025-01-16 19:09:33

使用 lapply基本 R 方法

lapply(data, function(x) bld.mbb.bootstrap(x, reps))

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

A base R approach using lapply

lapply(data, function(x) bld.mbb.bootstrap(x, reps))

or

setNames(lapply(colnames(data), function(x) 
  bld.mbb.bootstrap(data[,x], reps)), colnames(data))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文