我需要创建一个循环,将多个列表转换为数据帧,然后将每个数据帧写为csv。我的意思是,我想(i)运行循环以取消列出我的所有列表+将它们转换为data.frames,以及(ii)将每个列表写为CSV。
我运行了以下脚本,该脚本适用于我的一个列表,但我需要为其中许多列表执行相同操作。
用于转换数据框中嵌套列表(例如list1)的脚本,并写为CSV
data <- as.data.frame(t(do.call(rbind,unlist(list1,recursive = FALSE))))
write.csv(data,"list1.csv"))
请注意,“list1”是我作为示例编写的列表之一。我创建了一个脚本(done <- ls(pattern="list")
)来获取一个载体,其中包含我在R环境中加载的所有列表的名称。因此,我应该将步骤(i)和(ii)应用于“完成”向量中的所有名称。现在更清楚了吗?
如果你能帮助我创建循环,我真的很感激吗?
答案 0 :(得分:0)
for(i in 1:nrow(done){
list_name <- done[i]
data <- as.data.frame(t(do.call(rbind,unlist(noquote(list_name),recursive = FALSE))))
write.csv(data,paste0(list_name,".csv"))
}
答案 1 :(得分:0)
fun <- function(x){
data <- as.data.frame(t(do.call(rbind,unlist(paste0("list",x),recursive = FALSE))))
write.csv(data,paste0("list",x,".csv"))
}
fun(1:n)
我相信这是最有效的方法。