我在一个文件夹中有10个文件,我必须操作它。目前我手动执行此操作意味着我将脚本调整十次。现在我正试图自动完成。
首先,我通过此命令获取文件名:
data <- list.files(path=".", pattern=".csv", full.names=TRUE)
现在我有了通过for循环迭代文件名的想法。
for(i in data) {
df <- read.csv("i", header=T)
df$sum <- sum(df$value1, df$value2)
write.table(df, file=i, row.names=FALSE)
}
我不确定read.csv命令是否有效。而且,我不想重写文件。原始文件名具有以下结构
30LOV_1.csv
30LOV_2.csv
100LOV_1.csv
2000LOV_1.csv
我想在文件名中添加类似_20min的内容,例如
30LOV_1_20min.csv
30LOV_2_20min.csv
100LOV_1_20min.csv
2000LOV_1_20min.csv
我怎样才能做到这一点?你有什么建议吗?
由于
答案 0 :(得分:1)
您可以使用sub
在文件名末尾添加其他信息。我使用括号创建一个捕获的组来获取文件名(.*)
的第一部分,然后在\\1
的第二部分中调用它。
for(i in data) {
df <- read.csv("i", header=T)
df$sum <- sum(df$value1, df$value2)
filename <- sub("(.*).csv","\\1_20min.csv",i)
filename
# [1] "30LOV_1_20min.csv"
write.table(df, file=filename, row.names=FALSE)
}