我想做同样的事情来创建不同的数据帧,我可以使用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")
答案 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))
然后可以使用其名称调用每个数据框。
a1
,b1
。