我有一个包含1000多个文件的文件夹。我想逐个检查文件,但我不想在R中加载这些文件。我所做的是创建一个矩阵,每行都有一个文件路径。通过使用文件路径,我可以得到我想要的。所以我现在做了什么。
我开始创建一个矩阵:
path <- "/Users/mike/Desktop/folder"
files <- list.files(path=path, pattern="*.txt")
dt <- matrix(paste("/Users/mike/Desktop/folder", files, sep="/"))
dt是矩阵,如果我调用第一行并分析它,我得到我想要的东西:
a <- dt[1,]
analyse(a)
我现在的问题是如何自动为100多个文件执行此操作?我认为我必须做一个功能,但问题是我不知道该怎么做。
有人可以帮我一把吗?
提前谢谢。
答案 0 :(得分:0)
为什么不尝试一个简单的'for'循环:
mm = as.matrix(paste("file",1:10,".txt", sep=""))
mm
[,1]
[1,] "file1.txt"
[2,] "file2.txt"
[3,] "file3.txt"
[4,] "file4.txt"
[5,] "file5.txt"
[6,] "file6.txt"
[7,] "file7.txt"
[8,] "file8.txt"
[9,] "file9.txt"
[10,] "file10.txt"
for(i in 1:nrow(mm)) print(mm[i])
[1] "file1.txt"
[1] "file2.txt"
[1] "file3.txt"
[1] "file4.txt"
[1] "file5.txt"
[1] "file6.txt"
[1] "file7.txt"
[1] "file8.txt"
[1] "file9.txt"
[1] "file10.txt"
for(i in 1:nrow(mm)) {a = mm[i,]; analyze(a)}
答案 1 :(得分:0)
如果您这样做,则不需要第三行:
path <- "/Users/mike/Desktop/folder"
files <- list.files(path=path, pattern="*.txt", full.names =TRUE)
而且你不需要矩阵。你可以简单地写一下:
analysis <- list(NULL)
for(i in 1:length(files)){
analysis[[i]] <- analyse(files[i])
}
analysis