R:对名称相似的数据文件进行类似的操作

时间:2019-02-14 09:07:25

标签: r for-loop

我有10个.dat文件,它们对应于10个时间步长的x-y值。文件名具有以下模式:tstepxx.dat。例如,tstep01tstep35tstep55,...。 xx不遵循任何命令。我想对所有文件执行相同的操作。我正在寻找一种方法,使每次操作都不重复10次。例如,要读取和命名它们,我已经尝试过:

n <- c(01, 35, 55, 78, 90, 120, 150, 175, 190, 215)
For (i in n) {
paste0("data+", i) <- read.table(file = sprintf("tstep%s.dat", i))
colnames(paste0("data+", i)) <- c("x","h")}

for( n in i) {
paste0("data+", i) <- read.table(file = paste0("tstep",n,".dat"))
}

但是他们都不起作用。正确的做法是什么?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

嗨!您可以将文件保存在一个文件夹中。然后用正则表达式列出所有使用您的特定名称的文件,然后使用purrr包和map函数读取所有找到的文件。 map的优点是您可以将参数传递给read.table函数。这是示例代码:

# load libraries
library(purrr)

# list of file paths
files <- list.files(path="./input/.", pattern="tstep\\d{2}\\.dat", full.names=T)

# list of loaded data
data <- map(files, read.table)