使用R在多个文件中扫描字符串

时间:2015-08-04 20:13:35

标签: r string file csv

我想在R中扫描多个文件中的字符串,并知道哪个文件名具有该字符串。

有没有办法在函数中使用像grep,cat,readLines这样的东西呢?

如果我使用以下方式扫描文件:

fileNames <- Sys.glob("*.csv")

然后可能是这样的:

for (f in fileNames) {
    stuff <- read.csv(fileName, sep = ",")
    grep("string")

}

names(res) <- substr(filenames, 1, 30)

或者甚至更好,这样的循环:

for( f in  filenames ){
   cat("string", file=f)
}

for( f in filenames) {
    cat(readLines(f), sep="\n")
}

这段代码不起作用,我只是想通过考虑。我确定有更好的方法来做到这一点。这听起来很简单,但我无法做到。

我想扫描文件中的字符串,然后输出找到字符串的文件名。我没有在R中找到一个例子。

建议?

1 个答案:

答案 0 :(得分:4)

请注意,在您的第一个代码示例中,您使用f作为循环变量,而在循环内部使用fileName代替(R也区分大小写,因此fileNames和{{1}是不同的对象)。

如果搜索字符串不太可能包含CSV分隔符,则确实可以将filenamesreadLines(..)一起使用。然后grep(..)返回字符串出现的行号列表。请尝试以下代码:

grep(..)