将同一数据框复制n次并保存到一个列表中

6

我只需要将我的数据框复制n次(例如100次),并将所有输出保存到列表中。

这应该很容易和直接,但是我还没有找到任何解决方案。

虚假数据框:

df = read.table(text = 'a b
1 2
5 6
4 4
11 78
23 99', header = TRUE)

复制?这不是一遍又一遍地输出相同的结果吗? - Arya McCarthy
是的,确切地说......我需要这样做,因为最终我想以n种不同的方式操纵它们。 - aaaaa
3个回答

13

使用 lapply

df_list <- lapply(1:100, function(x) df)

这也为我解决了一个类似的问题。我对语法很好奇。为什么这会导致基本复制?函数(x)基本上是一个非函数,所以您重复“df”1:100次,但没有对其进行任何操作? - PortMadeleineCrumpet

9
我们可以使用 replicate
n <- 100
lst <- replicate(n, df, simplify = FALSE)

如果这篇文章对你有所帮助,你应该在旁边的复选框打勾。 - Arya McCarthy

2

如果您将 rep 放在 list 中,那么它可以返回与输入对象相同类型的结果:

df_list <- rep(list(df), 100)

str(df_list[1:2])
#> List of 2
#>  $ :'data.frame':    5 obs. of  2 variables:
#>   ..$ a: int [1:5] 1 5 4 11 23
#>   ..$ b: int [1:5] 2 6 4 78 99
#>  $ :'data.frame':    5 obs. of  2 variables:
#>   ..$ a: int [1:5] 1 5 4 11 23
#>   ..$ b: int [1:5] 2 6 4 78 99

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接