R读取文件,操作文件名和从/向文件夹写入文件

时间:2018-04-25 13:23:59

标签: r

我在一个文件夹中有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

我怎样才能做到这一点?你有什么建议吗?

由于

1 个答案:

答案 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)
}