在r中将列表项输出为csv时设置正确的列名

在r中将列表项输出为csv时设置正确的列名,r,output,R,Output,给定一个列表(例如out),我想将每个项目写入一个单独的csv文件,以便在其他地方使用。 列表很大,包含很多项,所以我想使用for循环来创建快捷方式。我创建了下面的 根据数据组和日期为每个输出文件生成名称。当我运行它时,除了重命名列之外,其他一切都正常 使用列表项名称和现有列名称(例如,我得到的不是“week4”,而是“pygweek4”。我不希望它更改我的列名 我尝试设置col.names=TRUE,希望保留现有名称,并使用下面的代码指定名称, 以及设置col.names=FALSE。在所有情

给定一个列表(例如out),我想将每个项目写入一个单独的csv文件,以便在其他地方使用。 列表很大,包含很多项,所以我想使用for循环来创建快捷方式。我创建了下面的 根据数据组和日期为每个输出文件生成名称。当我运行它时,除了重命名列之外,其他一切都正常 使用列表项名称和现有列名称(例如,我得到的不是“week4”,而是“pygweek4”。我不希望它更改我的列名

我尝试设置col.names=TRUE,希望保留现有名称,并使用下面的代码指定名称, 以及设置col.names=FALSE。在所有情况下,我都会收到一条警告消息,“尝试设置‘col.names’被忽略”

有谁能建议一个简单的方法来保留我已有的列名吗

out <- list(pyg = structure(list(week4 = c("0", "1", "1", "0", "1"), 
      week5 = c("0", "1", "1", "1", "1"), week6 = c("0", "1", "0", "1", "1"), 
      week7 = c("0", "0", "0", "1", "1"), week8 = c("0", "1", "0", "1", "1")), 
      row.names = 281:285, class = "data.frame"), 
      saw = structure(list(week4 = c("0", "0", "0", "0", "0"), 
      week5 = c("0", "0", "0", "0", "0"), week6 = c("0", "0", "0", "0", "0"), 
      week7 = c("0", "0", "0", "0", "0"), week8 = c("0", "0", "0", "0", "1")), 
      row.names = c(NA, 5L), class = "data.frame")) 

 for(i in 1:length(out)){
  n = paste(paste(names(out)[i],Sys.Date(), sep = "_"),  ".csv", sep = "")  # create set name and version control
  write.csv(out[i], file = n, row.names = FALSE, col.names = c("week4", "week5", "week6", "week7", "week8"))
}

out我们不需要指定
col.names
。问题似乎是,
列表
元素没有正确提取。它应该是
[[i]]
而不是
[i]
。对于
[i]
,它仍然是一个
数据框
元素的
列表
,它从
列表中提取
数据.frame

for(i in seq_along(out)){
   n <- paste(paste(names(out)[i],Sys.Date(), sep = "_"),  
                     ".csv", sep = "")  
    write.csv(out[[i]], file = n, row.names = FALSE, quote = FALSE)
   }
str(out[[1]])
str(out[1])