【发布时间】:2018-02-09 09:47:18
【问题描述】:
我最近开始训练自己进行情绪分析。我有一个如下所示的数据集:initial data
原始数据包括对葡萄酒的评论,每行一个。我所做的是对其进行标记并使用其中一个 R 词典执行基本的情感分析。如屏幕截图所示。 X 列是指初始数据框中的原始行。我现在要做的是计算净效应(查看每行的主要影响是正数还是负数,但是每个原始行(X)的数字并将其作为一列附加)。 我已尝试使用以下代码,但它不起作用:
per_row <- unigrams_all_ns %>%
inner_join(get_sentiments("bing"),by=c("unigram"="word"))%>%
group_by(X)%>%
spread(sentiment, n, fill = 0)
我收到以下错误
错误:var 必须计算为单个数字或列名,而不是函数
【问题讨论】:
-
请展示一个可重现的小例子和预期的输出
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
我觉得你先总结再传播
group_by(X, sentiment) %>% summarise(n = n()) %>% spread(sentiment, n, fill = 0) -
我对你的说法有点困惑。你的意思是你想知道X的每个级别有多少正面和负面的词?如果是这样,
count(X, sentiment)将在您的代码中跟随inner_join()。如果你想要一个宽格式的数据,你可以在count()之后使用spread(key = sentiment, value = n, fill = 0)。 -
@Vova 谢谢你的魅力。
标签: r dplyr sentiment-analysis