我有这个代码适合我(它来自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
答案 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")))
这是你想要的吗?