【发布时间】:2018-12-04 01:56:23
【问题描述】:
在 zomato 文件夹中有 4 个 csv(bengoli、chinese、italian 和 panjabi)文件。我正在使用基于词典的情感分析将这些文件与正面和负面的单词文本文件进行比较。一切都运行良好,我也非常完美地获得了 a、c、e、g 的值。但是当涉及到情节时,它给了我这个错误
不知道如何为列表类型的对象自动选择比例。默认为连续。 错误:geom_bar 需要以下缺失的美学:y
library(stringr)
library(ggplot2)
library(tm)
src <- DirSource("./Data/foodwise/zomato")
docs <- Corpus(src)
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs,content_transformer(tolower))
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, removeWords,stopwords("english"))
docs <- tm_map(docs, stripWhitespace)
docs <- tm_map(docs, stemDocument)
writeCorpus(docs, path="./Data")
texts <- readLines("./Data/zomato bengoli.csv.txt")
opinion.lexicon.pos <- scan('./Data/positive-word.txt', what='character', comment.char = ';')
opinion.lexicon.neg <- scan('./Data/negative-word.txt', what='character', comment.char = ';')
jj <- str_split(texts, pattern="\\s+")
a <- lapply(jj,function(x){sum(!is.na(match(x,opinion.lexicon.pos)))})
texts1 <- readLines("./Data/zomato chinese.csv.txt")
jj <- str_split(texts1, pattern="\\s+")
c <- lapply(jj,function(x){sum(!is.na(match(x,opinion.lexicon.pos)))})
texts2 <- readLines("./Data/zomato Italian.csv.txt")
jj <- str_split(texts2, pattern="\\s+")
e <- lapply(jj,function(x){sum(!is.na(match(x,opinion.lexicon.pos)))})
texts3 <- readLines("./Data/zomato panjabi.csv.txt")
jj <- str_split(texts3, pattern="\\s+")
g <- lapply(jj,function(x){sum(!is.na(match(x,opinion.lexicon.pos)))})
x <-c("Bengoli", "Chinese", "Italian", "Panjabi")
y <- c(a, c ,e, g)
data <- data.frame(x, y)
ggplot(data, aes(x, y)) + geom_bar(stat = "identity",aes(fill = x)) + xlab("Cuisines") + ylab("Total count") + ggtitle("")+ scale_fill_manual("Cuisines", values = c("Italian" = "lightpink", "Panjabi" = "lightblue", "Chinese" = "darkgrey", "Bengoli"="lightgreen"))
【问题讨论】:
-
欢迎来到 SO。首先:stackoverflow.com/questions/5963269/… 然后是你的问题:我想错误信息几乎是不言自明的。您需要提供一个连续的“y”。或者你使用 stat = 'count' 或 geom_count
-
lapply返回一个list类的对象。这意味着您的对象a、c、e和g是列表,所以y也是一个列表。ggplot不适用于列表,这就是“不知道如何为列表类型的对象自动选择比例”所说的。如果没有可重复的示例和用文字描述您的目标,很难为您提供帮助。如果您需要比这些 cmets 更多的帮助,请查看 Tjebo 的链接,并为我们提供一个可重复使用的示例。