使用 R 将列表元素保存为 data.frames

goc*_*lem 4 r list save lapply

如何将列表中的每个元素保存在单独的 .RData 文件中?

考虑以下示例:

# Generating a list containing 3 matrices

set.seed(1)
mylist=list(M1=matrix(LETTERS[sample(1:26,9)],3),M2=matrix(LETTERS[sample(1:26,9)],3),M3=matrix(LETTERS[sample(1:26,9)],3))
mylist[1:2]

# $M1
# [,1] [,2] [,3]
# [1,] "G"  "U"  "W" 
# [2,] "J"  "E"  "M" 
# [3,] "N"  "S"  "L" 
# 
# $M2
# [,1] [,2] [,3]
# [1,] "B"  "P"  "J" 
# [2,] "F"  "I"  "N" 
# [3,] "E"  "Q"  "R" 

# Transforming the list of matrices into a list of data frames

mylistdf=lapply(mylist,function(x)as.data.frame(x))
Run Code Online (Sandbox Code Playgroud)

我的最佳尝试(不起作用)

lapply(mylistdf,function(x)save(mylistdf[x],file=paste0(getwd(),names(mylistdf)[x],'.RData')))
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

您可以循环使用names列表对象和save

lapply(names(mylistdf), function(x) {
       x1 <- mylistdf[[x]]
       save(x1, file=paste0(getwd(),'/', x, '.RData'))
  })
Run Code Online (Sandbox Code Playgroud)