Purrr地图功能可在控制台中使用,但无法在闪亮的应用中使用

时间:2019-01-16 16:22:29

标签: r shiny purrr sentimentr

我有一个闪亮的应用程序,可以查看新闻文章的情绪分析。在此过程中,我使用了情感函数get_sentences()sentiment()。当我在控制台中运行此代码时,它工作正常,但是当我尝试通过闪亮的代码运行它时,出现错误Error in mutate_impl: Evaluation error: unused argument (.x)

相关代码为:

ui <- fluidPage(
  useShinyjs(),
  sidebarLayout(
    sidebarPanel(
      ...
    mainPanel(
      tabsetPanel(type = "tab",
        ...
        tabPanel("Sentiment", 
           selectInput(inputId = "sourceSelect", label = "Media Source", sources$title),
           plotOutput("sentiment"),
         )
      )
    )
  )
)

server <- function(input, output) {

  ...

  output$sentiment <- renderPlot(
    sentiment()
  )
  sentiment <-eventReactive(input$sourceSelect, {
    max_min = getMinMax(input)
    min = max_min[1]
    max = max_min[2]
    news1 <- news %>%
      filter(isDuplicate == "FALSE") %>%
      filter(date < max) %>%
      filter(date > min) %>%
      mutate(id = seq(1, nrow(.), 1))  %>%
      mutate(selectedSource = str_detect(title, input$sourceSelect)) %>%
      select(date, body, source, title, id, selectedSource)
    news_sentiment <- news1 %>%
      mutate(sentences = map(body, ~(get_sentences(.x))), (sentiment = map(sentences, ~(sentiment(.x)))))
    ...
})
...

}


shinyApp(ui = ui, server = server)

错误发生在mutate(sentences = map(body, ~(get_sentences(.x))), (sentiment = map(sentences, ~(sentiment(.x)))))行上。

当我通过控制台运行它时,它不会引发错误并且可以正常工作,创建一个包含sentences列和一个sentiment列的数据框,其中包含相关列表(正确的输出)来自sentimentr函数)。我测试过,在控制台和闪亮版本中传递到此管道的帧是相同的。我怀疑使用map进行的(.x)调用可能与发光效果不佳有关。

1 个答案:

答案 0 :(得分:0)

我发现了错误,原因是该函数被称为sentiment,并且还试图从sentiment库中调用sentimentr。一旦我将所有这些重命名为不同的名称,它就会起作用。