У меня блестящее приложение, и я хотел бы добавить rowSums, но получаю ошибку:
неверный аргумент для унарного оператора
Воспроизводимый пример:
library(tidyverse)
library(shiny)
library(nycflights13)
library(lubridate)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Example Shiny App"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
selectInput(inputId = "group_dims",
label = "group_dims",
choices = c("carrier", "origin", "dest", "tailnum"),
selected = c("carrier"),
multiple = T) # There can be only one
),
# DT table
mainPanel(
DT::dataTableOutput("eg_table")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
# initial preprocessing
my_flights <- flights %>%
filter(month == 11 & day >= 14) %>% # just data for 2 weeks
mutate(date = ymd(paste(year, month, day, sep = "-"))) %>%
select(date, carrier, origin, dest, tailnum, distance) %>%
mutate(date = ordered(format(date, "%d-%b"), levels = format(sort(unique(date)), "%d-%b")))
# recative preprocessing
my_flights_react <- reactive({
my_flights %>%
group_by_at(vars(date, input$group_dims)) %>%
summarise(distance = sum(distance)) %>%
pivot_wider(names_from = date, values_from = distance) %>%
replace(is.na(.), 0) %>%
### right here is the problem line ###
add_column(Total = rowSums(select(., -input$group_dims), na.rm = T))
})
output$eg_table <- DT::renderDT({
my_flights_react() }, options = list(dom = 'tip'))
}
# Run the application
shinyApp(ui = ui, server = server)
Выделена проблемная строка:
add_column(Total = rowSums(select(., -input$group_dims), na.rm = T))
Если удалить эту строку, приложение загрузится нормально. Я ссылался на другой пост , как добавить rowSums .
Как добавить суммы строк, если в реактивном фрейме данных выбрано различное количество столбцов, выбранных пользователем?
Если вы закомментируете проблемную строку и запустите ее, вы увидите тренд продолжительности полета по дате. Я хотел бы получить сумму продолжительности полета по дате, когда даты в столбцах широкие.