我打算做一个在线Twitter情绪分析器,用户可以使用flexdashboard自己输入搜索词。这是代码。
#Getting search term
textInput("data", label = "Enter search term", value = "", width = NULL, placeholder = NULL)
sliderInput("maxTweets", "Number of recent tweets to use for analysis:", min = 10, max = 1000, value = 500)
actionButton("enter", label = "Enter")
twt <- reactive({
if(input$enter!=0){
isolate({
twt <- searchTwitter(input$data, n=input$maxTweets, lang = "en", resultType = "recent")
})
}
})
#print tweets searched
twt
这是问题所在。当我运行下面的代码时,发生错误“ get_nrc_sentiment中的错误:数据必须是字符向量。”。我之前尝试过map_chr和as.character,但没有可供选择的列。
#Get sentiment
s <- reactive({
s<- get_nrc_sentiment(twt())
})
#Print output
s
答案 0 :(得分:0)
正如我在评论中所提到的,我强烈建议转到twitteR
rtweet上的Github page:
这是twitteR相对悠闲的弃用期的开始,赞成使用rtweet。请开始寻找切换到该软件包的方法。如果您有任何疑问,请联系我自己或@mkearney
对该存储库的最后一次提交是2年前。
如果您仍然想使用twitteR
。
twt <- searchTwitter(input$data, n=100, lang = "en", resultType = "recent")
twt <- twiListToDF(twt) # turn data.frame into a list
twt$text <- as.character(twt$text) # ensure it's a character vector
class(twt)
class(twt$text)
syuzhet::get_nrc_sentiment(txt$text)
您必须确保它是1)矢量类型2)字符类型
syuzhet::get_nrc_sentiment(as.factor(c("Hello", "World")))
#> Error in syuzhet::get_nrc_sentiment(as.factor(c("Hello", "World"))) :
Data must be a character vector.
syuzhet::get_nrc_sentiment(list("Hello", "World"))
#> Error in syuzhet::get_nrc_sentiment(list("Hello", "World")) :
Data must be a character vector.
答案 1 :(得分:0)
这是我的答案。
```{r}
#Getting search term
textInput("data", label = "Enter search term", value = "")
actionButton("enter", label = "Enter")
twt <- reactive({
if(input$enter!=0){
isolate({
return(search_tweets(input$data, n=100, lang = "en", include_rts = FALSE))
})
}
})
```
````{r}
#Get sentiment score of tweets
s <- reactive({
return(get_nrc_sentiment(twt()$text))
})
#Print sentiment score
renderTable(head(s()))
```