【发布时间】:2021-12-24 09:15:14
【问题描述】:
我有一个闪亮的应用程序,当我将输出的“un-shiny”版本的结果与 Shiny 中的 tableOutput 进行比较时,取消分组无法正常工作。我期待两者都有相同的结果。请参阅此内容以供参考:
# "un-shiny" version to compare results, not part of the app.
# This is to match with mpg input in shiny
mtcars %>%
select(mpg, cyl, disp,
wt, gear) %>%
mutate(wt = as.integer(wt),
mpg =as.integer(mpg)) %>%
filter(gear >= 4 & gear <= 5) %>%
group_by(wt,gear, mpg) %>%
tally() %>%
ungroup() %>%
group_by(gear,mpg) %>%
rename(Count= n)%>%
mutate(summ = sum(Count),
Percentage = round((Count/summ)*100, 2))
现在,在闪亮的应用程序中-
library(dplyr)
library(tidyr)
library(shiny)
#global.R -----
mtcars_rdpr <- mtcars %>%
select(mpg, cyl, disp,
wt, gear) %>%
mutate(wt = as.integer(wt),
mpg =as.integer(mpg)) %>%
filter(gear >= 4 & gear <= 5) %>%
#ui.R ----
ui <- fluidPage(
sidebarLayout(
mainPanel(
selectInput("pickvalue", label = "Gears", colnames(mtcars_rdpr%>%
select(mpg, cyl)),
selected = NULL, multiple = F)),
tableOutput("tableOut")
)
)
# server.R-----
server <- function(input, output, session){
gears <- reactive({
dat <- mtcars_rdpr
if (!is.null(input$pickvalue)){
dat <- dat %>%
group_by(wt,gear, input$pickvalue) %>%
tally() %>%
ungroup() %>% # when i mention specific columns in the function, I get a warning
group_by(gear,input$pickvalue) %>%
rename(Count= n)%>%
mutate(summ = sum(Count),
Percentage = round((Count/summ)*100, 2))
}
#dat <- dat %>% select(-input$pickvalue) # this gives a warning
return(dat)
})
output$tableOut<- renderTable({gears()})
}
shinyApp(ui = ui, server=server)
如果有人能向我解释为什么两者之间的结果不匹配,我将不胜感激。
【问题讨论】:
标签: r dplyr shiny shiny-server shiny-reactivity