【问题标题】:How to create multiple dataframes with lapply()?如何使用 lapply() 创建多个数据框?
【发布时间】:2019-07-26 07:29:31
【问题描述】:

我想做同样的事情来创建不同的数据框,我可以使用 lapply 实现吗?

我尝试过但没有成功

xx<-c("a1","b1")
lapply(xx, function(x){
  x<-data.frame(c(1,2,3,4),"1")
})

我希望我能得到两个数据框,比如

a1<-data.frame(c(1,2,3,4),"1")
b1<-data.frame(c(1,2,3,4),"1")

【问题讨论】:

  • L &lt;- lapply(xx, function(x) data.frame(c(1,2,3,4),"1") ) 拥有一个数据框列表比拥有一堆对象要好。

标签: r lapply


【解决方案1】:

assigns.Globalenv 的选项。正如所指出的那样效率较低,但提供它是为了按原样回答 OP 的问题:

lapply(xx, function(x) assign(x,data.frame(A=c(1,2,3,4),
                                       B="1"),
                           envir=.GlobalEnv))

然后,您可以使用其名称调用每个数据框。 a1, b1.

【讨论】:

    【解决方案2】:

    您可以尝试在 xx 名称向量上使用 sapply 来使用数据框填充列表:

    lst <- list()
    xx <- c("a1", "b1")
    sapply(xx, function(x) {
        lst[[x]] <- data.frame(c(1,2,3,4), "1")
    })
    

    然后,您可以使用列表访问每个数据框,例如lst$a1.

    【讨论】:

      猜你喜欢
      • 2019-06-05
      • 2019-08-29
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 2021-02-01
      • 2018-07-30
      相关资源
      最近更新 更多