gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:18:58 26 4
gpt4 key购买 nike

我想扫描多个文件以查找 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com