r - R如何将一列添加到csv文件列表中
问题描述
我正在尝试将 .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)
}
解决方案
您可以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)
})
读取每个 csv workbooks
,在每个文件中添加一个新的列名,即文件名,然后写入新的 csv。
推荐阅读
- c# - 在整个应用程序中共享一个 Random 的卫生方式
- cmake - 如何将 CMake 和 CPack 与覆盖我的变量的依赖项一起使用?
- rust - String::from_utf8_lossy() 是否分配内存?
- php - 多个值数组php - Mssql
- postman - Postman - 在两者之间添加参数
- typescript - 如何使标准在 Type Script 中工作
- excel - 如何使用 laravel excel(导入)跳过空白行
- python - 在 Pandas 中将 colum1 值与 colum2 合并,col 数据类型都是对象,并且第一列中只有少数值是空的?
- angular - 以角度导入 css url 时出现错误“expectedcss(css-rparentexpected)”
- outlook - Outlook Web 插件问题