r - 使用 R 扫描多个文件中的字符串

标签 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 中执行此操作的示例。

建议?

最佳答案

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

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

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

for (fileName in fileNames) {
   if (length(grep("string", readLines(fileName))) > 0) { print(fileName)}
}

关于r - 使用 R 扫描多个文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818452/

相关文章:

r - 扩展两个值之间的组并计算唯一出现的次数

python - 使用Numpy的readtxt读取十六进制数字

r - ggplot2 + 绘图 : Axis title disappear

R openxlsx 包。把NA写成空格?

r - 如何在 R 中生成所有可能的 m 组合,m 变化

Java从字符串输入中获取int

ios - 将具有 "\n"的数组元素合并到 Swift 中的字符串中

javascript - 我如何在java脚本中找到一个句子中单词的出现次数

c# - Silverlight:将文件流式传输到新的 HTML 浏览器窗口以提示用户到 "open or save as..."?

bash - 如何使用 Linux bash shell 脚本从文件中获取最大数量