所以我有很长的元素列表,我想将这些元素单独保存为数据帧。是的,现在我正试图通过:
for (i in 1:length(mylist)) {
save.dta13(mylist[i], file=paste0(names(mylist)[i], ".dta"))
}
但这似乎没有用,有什么想法吗?
答案 0 :(得分:1)
这是另一种解决方案(与akrun发布的略有不同)
#An example list
L=list(mat1=matrix(c(1,2,3,4,5,6,7,8,9),3,3),mat2=matrix(c(1,2,3,4,5,6,7,8,9),3,3),mat3=matrix(c(1,2,3,4,5,6,7,8,9),3,3))
#Convert elements of list to a data frame
L_DF = lapply(L,function(x)as.data.frame(x))
#Check the class of each element
class(L_DF$mat1)
#[1] "data.frame"
class(L_DF$mat2)
#[1] "data.frame"
class(L_DF$mat3)
#[1] "data.frame"
names(L_DF)
#[1] "mat1" "mat2" "mat3"
#Save as dta
lapply(names(L_DF), function(x) {
f <- L_DF[[x]]
save(f, file=paste0(getwd(),'/', x, '.dta'))
})
答案 1 :(得分:0)
我们可以使用lapply
循环names
的{{1}}
list