gpt4 book ai didi

r - Shiny 的 group_by dplyr 函数

转载 作者:行者123 更新时间:2023-12-04 12:10:10 25 4
gpt4 key购买 nike

我在使用 Shiny 时无法在 dplyr 工作中获取 group_by。似乎 dplyr 无法将来自 Shiny 的输入 $var 识别为表中的有效字段。

在此示例中,我希望 ui.R 中的“级别”输入指示分组依据。

在 ui.R 中我有:

library(shiny)
shinyUI(fluidPage(
titlePanel("Orders"),
sidebarLayout(
sidebarPanel(
selectInput("Region_Input", label = h5("Choose a Region"),
choices = list("A", "B")),
radioButtons("level", "What level do you want to see:",
list("item", "category"))

),
mainPanel(
verbatimTextOutput("Level_Select"),
tableOutput(outputId="table")

))))

在 server.R 我有:

library(shiny)  
library(dplyr)

OrderItems <- data.frame(Region = c('A','A','A','A','A','A','B','B','B','B','B','B','B'),
item = c('Item A','Item B','Item C','Item D','Item E',
'Item A','Item B','Item C','Item D','Item E',
'Item A','Item B','Item C'),
category = c('Cat 1','Cat 1','Cat 1','Cat 2','Cat 2',
'Cat 1','Cat 1','Cat 1','Cat 2','Cat 2',
'Cat 1','Cat 1','Cat 1'))
shinyServer(
function(input, output) {

output$table <- renderTable({
OrderItems %>%
group_by(input$level) %>%
summarize(count = n()) %>%
arrange(desc(count))
})
})

当“级别”输入为“类别”时,我期望的输出是:

   category count
1 Cat 1 9
2 Cat 2 4

然而,我最终得到的是:

    input$level count
1 category 13

如有任何关于如何解决此问题的想法,我们将不胜感激!

最佳答案

根据@joran 的评论,这应该像用 group_by_(input$level) 替换 group_by(input$level) 一样简单,但是如果没有可重现的例子。如果您进行一些更改并利用 mtcars 数据,则可以重现以下内容以查看其工作原理:

服务器.R

library(shiny)  
library(dplyr)

shinyServer(
function(input, output) {

output$table <- renderTable({
mtcars %>%
group_by_(input$level) %>%
summarize(count = n()) %>%
arrange(desc(count))
})
})

ui.R

library(shiny)
shinyUI(fluidPage(
titlePanel("Orders"),
sidebarLayout(
sidebarPanel(
selectInput("Region_Input", label = h5("Choose a Region"),
choices = list("A", "B")),
radioButtons("level", "What level do you want to see:",
list("cyl", "am"))

),
mainPanel(
verbatimTextOutput("Level_Select"),
tableOutput(outputId="table")

))))

关于r - Shiny 的 group_by dplyr 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32186374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com