さまざまなデータファイルのセットを保持するフォルダがあります。「25」や「色分け」などの特定の用語を含むファイルの数を数え、可能であればそれらのファイルの名前をリストしたいと思います。Rでそれを行う方法はありますか?
質問する
1213 次
1 に答える
1
これはあなたが必要なことをしますか
findTermsInFileNames <- function(terms, theFolder="path/to/Folder/", extension="R", ignoreCase=TRUE) {
# Iterates through all files of type `extension` in `theFolder` and returns a
# count for each time one of `terms` appears in a file name
# Note: extension should NOT include a dot. good: "*" bad: ".*"
# str_detect is from stringr
require(stringr)
# Get list of files
pat <- paste0("*.", extension)
filesList <- list.files(path.expand(theFolder), pattern=pat, ignore.case=ignoreCase)
# Add attribute to terms, whether cAseS should be ignored
attr(terms, "ignore.case") <- ignoreCase
# Tabulate all occurrences of temrs in the list of file names
results <- rowSums(sapply(filesList, str_detect, terms, USE.NAMES=TRUE))
# Clean up the table names
names(results) <- terms
return(results)
}
例:
fold <- "~/git/src"
terms <- c("an", "example", "25")
findTermsInFileNames(terms, fold)
于 2012-11-12T17:47:39.857 に答える