如何使用lapply()创建多个数据框?

时间:2019-07-26 07:29:31

标签: r lapply

我想做同样的事情来创建不同的数据帧,我可以使用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")

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

assigns.Globalenv的选项。正如所指出的那样,这效率较低,但可以按原样回答OP的问题:

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

然后可以使用其名称调用每个数据框。 a1b1

相关问题