Примечание. Библиотека (readr) необходима для функции read_lines , используемой в функции read_folder . Этого не было в вопросе . Автору не известен точный ответ на вопрос «Почему я получаю сообщение об ошибке». Ниже приведена попытка решить проблему вместо этого.
Наиболее вероятная проблема:
При применении unnest () к фрейму данных его сначала необходимо изменить. Спрашивающий, вероятно, использовал функциональность в том виде, в каком она существовала до того, как была исключена. Добавление этого небольшого шага обеспечило обработку данных без ошибок.
Потенциальное решение:
library(dplyr)
library(tidyr)
library(purrr)
library(readr)
url <- "http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz"
download.file(url, destfile = "20news-bydate.tar.gz")
untar("20news-bydate.tar.gz")
training_folder <- "20news-bydate-train"
# Create a function to read all files from a folder into a data frame
read_folder <- function(infolder) {
data_frame(file = dir(infolder, full.names = TRUE)) %>%
mutate(text = map(file, read_lines)) %>%
transmute(id = basename(file), text) %>%
unnest(text)
}
raw_text <- data_frame(folder = dir(training_folder, full.names = TRUE)) %>%
mutate(temp = map(folder, read_folder)) %>%
unnest(temp) %>%
transmute(newsgroup = basename(folder), id, text)
преобразовать в фрейм данных
raw_text_df <- as.data.frame(raw_text)
Вывод выглядит так:
> print(head(raw_text_df ))
newsgroup id text
1 alt.atheism 49960 From: mathew <mathew@mantis.co.uk>
2 alt.atheism 49960 Subject: Alt.Atheism FAQ: Atheist Resources
3 alt.atheism 49960 Summary: Books, addresses, music -- anything related to atheism
4 alt.atheism 49960 Keywords: FAQ, atheism, books, music, fiction, addresses, contacts
5 alt.atheism 49960 Expires: Thu, 29 Apr 1993 11:57:19 GMT
6 alt.atheism 49960 Distribution: world
Надеюсь, это поможет.