Одним из подходов может быть использование пакета dplyr
и цикла for
для импорта каждого файла и их объединения в виде информационного кадра с именем файла и номером абзаца, используемых для индексации, а затем с помощью tidytext
для очистки:
#install.packages(c("dplyr", "tidytext"))
library(dplyr)
library(tidytext)
file_list <- list.files(pattern="*.txt")
texts <- data.frame(file=character(),
paragraph=as.numeric(),
text=character(),
stringsAsFactors = FALSE) # creates empty dataframe
for (i in 1:length(file_list)) {
p <- read.delim(file_list[i],
header=FALSE,
col.names = "text",
stringsAsFactors = FALSE) # read.delim here is automatically splitting by paragraph
p <- p %>% mutate(file=sub(".txt", "", x=file_list[i]), # add filename as label
paragraph=row_number()) # add paragraph number
texts <- bind_rows(texts, p) # adds to existing dataframe
}
words <- texts %>% unnest_tokens(word, text) # creates dataframe with one word per row, indexed
Ваш окончательный результат будет:
head(words)
file paragraph word
1 SampleTextFile_10kb 1 lorem
1.1 SampleTextFile_10kb 1 ipsum
1.2 SampleTextFile_10kb 1 dolor
1.3 SampleTextFile_10kb 1 sit
1.4 SampleTextFile_10kb 1 amet
1.5 SampleTextFile_10kb 1 consectetur
...
Это то, что вы ищете для следующих этапов анализа?