У меня блестящее приложение, которое просматривает анализ настроений в новостных статьях. В рамках этого я использую функции 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)
, которое может не очень хорошо играть с блестящим.