Почему не создается этот визуал? - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я использую tidyverse, twitteR, tm, RColorBrewer, stringr и wordcloud для очистки данных Twitter. Когда я запускаю свой код, появляется ошибка Ошибка в strwidth (words [i], cex = size [i], ...): недопустимое значение 'cex', когда я пытаюсь создать свое wordcloud. Кто-нибудь знает, как это исправить? Ниже мой код. Спасибо.

serena <- searchTwitter("serena+williams", n = 3000,
                        lang = "en")

serena_df <- twListToDF(serena)
serena_df <- serena_df[,1]

tweet.corpus = Corpus(VectorSource(serena_df))

tweet.removeURL = function(x) gsub("http[^[:space:]]*", "", x)
tweet.removeATUser = function(x) gsub("@[a-z, A-Z]*", "", x)
tweet.removeEmoji = function(x) gsub("\\p{So}|\\p{Cn}", "", x, perl = TRUE)
tweet.removeSpecialChar = function(x) gsub("[^[:alnum:]]", "", x)

tweet.corpus = tm_map(tweet.corpus, content_transformer(tweet.removeURL))
inspect(tweet.corpus[1:4])
tweet.corpus = tm_map(tweet.corpus, content_transformer(tweet.removeATUser))
inspect(tweet.corpus[1:4])
tweet.corpus = tm_map(tweet.corpus, content_transformer(tweet.removeEmoji))
#tweet.corpus = tm_map(tweet.corpus, stripWhitespace)
tweet.corpus = tm_map(tweet.corpus, content_transformer(tweet.removeSpecialChar))
tweet.corpus = tm_map(tweet.corpus, removePunctuation)
tweet.corpus = tm_map(tweet.corpus, content_transformer(tolower))

tweet.corpus = tm_map(tweet.corpus, removeWords, c(stopwords("english"), "RT", "rt"))
tweet.corpus = tm_map(tweet.corpus, removeNumbers)


ap.tdm <- TermDocumentMatrix(tweet.corpus)
ap.m <- as.matrix(ap.tdm)
dim(ap.m)
ap.v <- sort(rowSums(ap.m), decreasing = TRUE)
ap.d <- data.frame(word = names(ap.v), freq = ap.v)

pal2 <- brewer.pal(8, "Dark2")
png("serena.png", width = 1920, height = 1080)
wordcloud(ap.d$word, ap.d$freq, scale = c(8.2), min.freq = 3,
            max.words = 50, random.order = FALSE, rot.per = .15, colors = pal2)
  dev.off()
...