Purrr 地图功能在控制台中工作但在闪亮的应用程序中失败
Purrr map function working in console but failing in shiny app
我有一个闪亮的应用程序,可以查看新闻文章的情绪分析。作为其中的一部分,我使用了 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 函数的正确输出)。我已经测试过,传递到该管道的帧在控制台和闪亮版本中都是相同的。我怀疑使用 (.x)
的 map
调用可能与 shiny 不兼容。
我发现了错误,它是函数被调用 sentiment
并且还试图从 sentimentr
库中调用 sentiment
。一旦我将所有这些重命名为不同,它就起作用了。
我有一个闪亮的应用程序,可以查看新闻文章的情绪分析。作为其中的一部分,我使用了 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 函数的正确输出)。我已经测试过,传递到该管道的帧在控制台和闪亮版本中都是相同的。我怀疑使用 (.x)
的 map
调用可能与 shiny 不兼容。
我发现了错误,它是函数被调用 sentiment
并且还试图从 sentimentr
库中调用 sentiment
。一旦我将所有这些重命名为不同,它就起作用了。