【发布时间】:2014-02-08 00:10:46
【问题描述】:
我可以遍历目录中的所有文件。但是,我想迭代某些文件而不是所有文件。我想使用索引。
我想通过使用file_id 向量来做到这一点。每个向量元素都将是“文件”中的索引。
例如:我在一个目录中有 500 个文件,我只想迭代三个文件,即文件 2、4、15。我生成了一个名为file_id = c(2, 4, 15) 的向量。现在,我怎样才能只迭代这些文件或索引,例如files[2]、files[4]、files[15],它们只会从文件 2、4 和 15 中获取数据,而不是从所有 500 个文件中获取数据。
#get a list of all the files in directory.
files <- list.files(directory, full.names = TRUE)
#iterate over all the files in directory, and get file data
for (item in files){
filedata <- read.csv(item)
}
#What I want to do is only iterate over following files indicated in file_id vector. That will open files 2,4, and 15 nothing else.
file_id = c(2, 4, 31)
【问题讨论】:
-
files <- list.files(directory, full.names = TRUE)[c(1,4,15)]然后使用你的loop -
但是您应该为您感兴趣的文件做好准备,以便在
list.files中更改顺序。如果您详细解释您的问题,我们可以帮助您找到更可靠的方法。 -
感谢吉尔伯和佩顿。它解决了我的问题。
标签: r file for-loop file-io vector