2014-06-21 28 views
0

我跑了生产约500个文件被命名文件1至file500出现在目录

然而分析查找文件,两者之间的某个文件丢失(如file233和file245以及其他)。我想进一步处理它们在R循环中,但然后我需要筛选出不存在的文件。

是否有一种简单的方法可以将文件中的数字存储在R中的矢量中,然后我可以将它用于循环?

v<-containing all numbers after file which are present in the directory 

应该提到的是,文件没有结束的.txt,但只是名字fileXX其中XX是多少

+3

另一种方法可能是使用'list.files(pattern =“.txt”)'来获取目录中的所有.txt文件。 –

+0

也可以考虑在文件名中附加零,例如'file001.txt','file002.txt'等。这使得对名称排序更容易。看看'sprintf('%03d',1:10)'来实现这一点。 –

回答

2

,最好的办法是简单地创建一个实际上是文件列表出现在目录中,像@beginneR说:

list_of_files = list.files('/path/to/dir') 

do_some_processing = function(list_element) { 
    # Perform some processing and return something 
} 
lapply(list_of_files, do_some_processing) 

如果您需要在文件名中的数字,一个简单的正则表达式会做:

> grep('[0-9]', sprintf('file%d', 1:100)) 
    [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 
[91] 91 92 93 94 95 96 97 98 99 100 
+0

问题是我真的只需要解析出fileXX.txt(其中数字是XX)之后的所有文件中的数字。文件没有结尾.txt这只是一个例子,他们只是名字fileXX – user3419669

+1

比简单地排除'pattern'部分以获取所有存在的文件,或使用不同的'pattern'例如'文件*'。 –

+0

但我如何解析出数字? list.files只会给我一个文件列表? file1,file2 ... file300,但我需要grep数字(1,2..300) – user3419669

相关问题