使用扫描处理多个文本文件

时间:2016-04-07 08:04:11

标签: r text-files

我有这个代码适合我(它来自Jockers' Text Analysis with R for the Literature of Literature of Literature)。但是,我需要做的是自动执行此操作:我需要执行" ProcessingSection"最多30个单独的文本文件。我怎样才能做到这一点?我可以拥有一个包含30次" text.v"的表或数据框。对于每个scan("*.txt")

非常感谢任何帮助!

# Chapter 5 Start up code

setwd("D:/work/cpd/R/Projects/5/")

text.v <- scan("pupil-14.txt", what="character", sep="\n")
length(text.v)


#ProcessingSection
text.lower.v <- tolower(text.v)
mars.words.l <- strsplit(text.lower.v, "\\W")
mars.word.v <- unlist(mars.words.l)

#remove blanks
not.blanks.v <- which(mars.word.v!="")
not.blanks.v

#create a new vector to store the individual words
mars.word.v <- mars.word.v[not.blanks.v]
mars.word.v

1 个答案:

答案 0 :(得分:0)

由于您的示例不是reproducible,所以很难提供帮助。

承认您对mars.word.v的结果感到满意, 你可以将这部分代码转换成一个接受单个参数的函数, 扫描的结果。

processing_section <- function(x){
  unlist(strsplit(tolower(x), "\\W"))
}

然后,如果所有.txt个文件都在当前工作目录中,您应该能够列出它们, 并将此功能应用于:

lf <- list.files(pattern=".txt")
lapply(lf, function(path) processing_section(scan(path, what="character", sep="\n")))

这是你想要的吗?