我有一個閃亮的應用程式,當我將輸出的“非閃亮”版本的結果與閃亮的結果進行比較時,取消分組無法正常作業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)

如果有人能向我解釋為什么結果在兩者之間不匹配,我將不勝感激。
uj5u.com熱心網友回復:
您不能將非標準評估與字串混淆,而這實際上是在您的代碼中進行的。
從 dplyr 1.0.0 開始,您可以使用 cross 并將它們組合在一個向量中:
只是相關的行:
group_by(across(c("gear", input$value))) %>%
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/356519.html
上一篇:使用for回圈保存模擬結果
下一篇:沿一個方向偏移多段線
