【问题标题】:Replicate same data.frame n times and save them into a list复制相同的data.frame n次并将它们保存到列表中
【发布时间】:2017-05-08 17:31:34
【问题描述】:

我只需要将我的 data.frame 复制 n 次(例如 100 次)并将所有输出保存到一个列表中。

这应该很简单明了,但我还没有找到任何解决方案。

假数据帧:

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

【问题讨论】:

  • 复制?这不是一遍又一遍的相同输出吗?
  • 是的,正是......我需要它,因为我想最终以 n 种不同的方式操纵它们

标签: r list dataframe replicate


【解决方案1】:

lapply:

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

【讨论】:

  • 这也为我解决了类似的问题。我对语法很好奇。为什么这会导致基本复制?函数(x)基本上是一个非函数,所以你重复“df”1:100 次但没有做任何事情?
【解决方案2】:

我们可以使用replicate

n <- 100
lst <- replicate(n, df, simplify = FALSE)

【讨论】:

  • 如果这有帮助,您应该标记它旁边的复选框。
【解决方案3】:

如果将rep 包装在list 中,则可以使用rep,因为rep 会尝试返回您传递给它的相同类型的对象:

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

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2013-08-09
    相关资源
    最近更新 更多