Я новичок в R, и у меня есть большие данные с 81k наблюдений.Если я попытаюсь:
titles_matrix <- as.matrix(titulos_tdm)
Я получу
Error: cannot allocate vector of size 40.8 Gb
Я также попытался с big.matrix, и получил аналогичную ошибку.Если я попытаюсь прямо из корпуса:
wordcloud(clean,max.words = 200,random.color = TRUE,random.order=FALSE)
, я получу
Error in plot.new() : figure margins too large
Каков наилучший способ создать облако большого количества данных?Также попробовал добавить gc()
, все равно не получилось.
Полный код:
# imports and libraries
source = VectorSource(perfil.df.publicacoes$titulo)
# Make a volatile corpus
corpus <- VCorpus(source)
clean_corpus <- function(corpus){
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removeWords, stopwords("en"))
corpus <- tm_map(corpus, removeWords, stopwords("portuguese"))
return(corpus)
}
clean <- clean_corpus(corpus)
# Convert TDM to matrix
titulos_tdm <- TermDocumentMatrix(clean)
titulos_m <- as.matrix(titulos_tdm)
# Sum rows and frequency data frame
titulos_term_freq <- rowSums(titulos_m)
titulos_word_freqs <- data.frame(
term = names(titulos_term_freq),
num = titulos_term_freq
)
wordcloud(titulos_word_freqs$term, titulos_word_freqs$num, max.words = 50, colors = "red")
Как я уже говорил, код падает на titulos_m <- as.matrix(titulos_tdm)
.