[英]R how to add a column to a list of csv files
我正在尝试将.csv 列表中的每个文件的名称添加为所有值也等于名称的最后一列。 我明白了,但结果显示文件如转置之类的。 我不知道如何修复它,我尝试了 data.frame,unlist,但没有。
这是代码:
workbooks <- list.files(pattern="*.csv", full.names= T)
read_workbooks <- lapply(workbooks, read.csv)
for (i in 1:length(workbooks)){
name_of_file[i] <- str_replace_all(str_sub(workbooks[i], 3,
end = unlist(gregexpr("-current",workbooks[i]))-1),"_"," ")
temp_workbook <- cbind(read_workbooks[i],"Filer Name" = name_of_file[i])
write.csv(temp_workbook, file = paste(name_of_file[i],".csv",sep = ""),
row.names = F)
}
您可以在匿名 function 的帮助下在同一个lapply
调用中执行此操作。
workbooks <- list.files(pattern="*.csv", full.names= TRUE)
lapply(workbooks, function(x) {
write.csv(transform(read.csv(x), file_name = basename(x)),sprintf('new_%s.csv',
tools::file_path_sans_ext(basename(x))), row.names = FALSE)
})
读取workbooks
中的每个 csv ,在每个文件中添加一个新的列名,即文件名并写入新的 csv。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.