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