我的文件系统命名,并且都位于同一文件夹中。所以我想利用并编写一个函数来逐个读取它们而不是为每个函数手动执行此操作。
名称存储在此文本文件中:
DF <- read.table(text=" site column row
1 abs 1259 463
2 adm 1253 460
3 afrm 1258 463", header=T)
我想编写一个逐行执行的函数并执行此操作:
You can see for instance if we apply for the first row:
cor$site
是abs
所以:
file1=read.table("C:\\Data\\abs.txt",sep = "\t")
cor$column
是1259
cor$row
是463
所以
wf= read.table("C:\\Users\\measurement_ 1259_463.txt", sep =' ' , header =TRUE)
现在我使用file1
和wf
.........
然后转到第二行,依此类推。
答案 0 :(得分:1)
使用您要阅读的文件名创建一个字符向量,并按照consolidating data frames in R或reading multiple csv files in R中的说明操作。
files <- data.frame(
site = paste("C:\\Data\\", DF$site, ".txt", sep=""),
measurement = paste("C:\\Users\\measurement_", DF$column, "_",
DF$row, ".txt", sep=""),
stringsAsFactors = FALSE)
results <- Map(function(s, m){
file1 <- read.table(s, sep="\t")
wt <- read.table(m, sep=' ', header=TRUE)
# Do stuff
return(result)
}, files$site, files$measurement)
# Alternatively
results <- vector("list", nrow(files))
for(i in 1:nrow(files)){
file1 <- read.table(files$site[i], sep="\t")
wt <- read.table(files$measurment[i], sep=' ', header=TRUE)
# Do stuff
results[[i]] <- # result
}