如何循环遍历多个列表以在R中创建数据帧?

时间:2016-09-28 15:01:39

标签: r list loops

我需要创建一个循环,将多个列表转换为数据帧,然后将每个数据帧写为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)应用于“完成”向量中的所有名称。现在更清楚了吗?

如果你能帮助我创建循环,我真的很感激吗?

2 个答案:

答案 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)

我相信这是最有效的方法。