如何正确使用Shining-R代码上的checkboxInput

如何正确使用Shining-R代码上的checkboxInput,r,ggplot2,shiny,R,Ggplot2,Shiny,我有一个工作应用程序,我想用checkboxInput来增强它 1> 以下是数据示例: StudentID StudentGender GradeName TermName MeasurementScaleName TestPercentile GoalRITScore1 GoalRITScore2 GoalRITScore3 GoalRITScore4 1 1374 M 3 Fall 2009

我有一个工作应用程序,我想用checkboxInput来增强它

1> 以下是数据示例:

     StudentID StudentGender GradeName    TermName MeasurementScaleName TestPercentile GoalRITScore1 GoalRITScore2 GoalRITScore3 GoalRITScore4
1         1374             M         3   Fall 2009              Reading             32           188           181           179            NA
50        1297             F         8   Fall 2009       Language Usage             48           224           214           209           228
101       1608             F         8   Fall 2009          Mathematics             40           225           210           211           244
1500      1286             M         1   Fall 2011       Language Usage             NA           218           225           238           221
2345      1196             F         8   Fall 2012       Language Usage             78           230           227           239           223
5498      1376             F         3 Spring 2010              Reading             24           188           194           185            NA
8954       486             M         2 Spring 2014              Reading              2           146           152           174            NA
9000       577             F         2 Spring 2014              Reading             71           196           189           207            NA
     GoalRITScore5 GoalRITScore6
1               NA            NA
50              NA            NA
101            233           227
1500            NA            NA
2345            NA            NA
5498            NA            NA
8954            NA            NA
9000            NA            NA
2> 这是工作脚本的一部分。 闪亮用户界面

以及Server.R脚本的一部分

服务器.R 现在我想用我的checkboxInputgender,制作同样的条形图,但带有性别隔离。。。我想我可以把它添加到服务器中

if(input$gender) {
      graph3RIT <- reactive (mapdata %>% 
                               filter(TermName == input$termname, MeasurementScaleName == input$testname) %>% 
                               group_by(GradeName, StudentGender) %>% 
                               summarise(meanPer = mean(TestPercentile)))
      ggplot(graph3RIT(), aes(as.factor(GradeName), meanPer, fill = as.factor(StudentGender))) +
        geom_bar(stat="identity", position = "dodge") + 
        labs(x = "Grade Level", y = "Mean RIT Percentile")
    }
但是如果我这样做,那么第一张图就不会再出现了。我试着在showmeshiny网站上查找类似的情况,但我能找到的所有网站都没有可用的代码


关于如何使用该复选框来更改图表的任何指导意见

弗兰基自己找到了答案。他在评论中写道

好的。。。谢谢,很好。在这期间我确实弄明白了。我所需要的 要做的是把我的代码放在其他{}之间。然后它很好地工作了 弗兰基2月10日15日9:43


你能输出你的数据样本,以便我们通过复制/粘贴将其加载到R中吗?@NicE,数据集有超过9000行,包含34个变量。我只是把8个随机行放在那里,其中只有感兴趣的变量。。。谢谢,很好。在这期间我确实弄明白了。我所需要做的就是把我的代码放在其他{}之间。然后它工作得很好。这没有增加任何价值,请删除it@Creos事实上结束一个问题的正确方法是将答案张贴出来,并被接受。本达瓦发布的是答案,最初隐藏在评论中。我认为这是一个正确的答案,即使OP没有自己发布。@DavidMakogon啊,你是对的,我误读了回复,谢谢你纠正我。如果你编辑回复,我将能够撤销否决票。。。然而,轻浮的编辑通常是不受欢迎的,除非它是由作者完成的
library(shiny)
library(dplyr)
library(tidyr)
library(ggplot2)

mapdata <- read.csv("MAP data raw.csv")

shinyServer(function(input, output) {

  output$mapgraph <- renderPlot({

    graph1RIT <- reactive (mapdata %>% 
                             filter(TermName == input$termname, MeasurementScaleName == input$testname) %>% 
                             group_by(GradeName) %>% 
                             summarise(meanPer = mean(TestPercentile)))
    ggplot(graph1RIT(), aes(as.factor(GradeName), meanPer, fill = as.factor(GradeName))) +
      geom_bar(stat="identity") + 
      #coord_cartesian(ylim = c(150, 250)) + 
      labs(x = "Grade Level", y = "Mean RIT Percentile") + 
      guides(fill = FALSE)

  })
})
if(input$gender) {
      graph3RIT <- reactive (mapdata %>% 
                               filter(TermName == input$termname, MeasurementScaleName == input$testname) %>% 
                               group_by(GradeName, StudentGender) %>% 
                               summarise(meanPer = mean(TestPercentile)))
      ggplot(graph3RIT(), aes(as.factor(GradeName), meanPer, fill = as.factor(StudentGender))) +
        geom_bar(stat="identity", position = "dodge") + 
        labs(x = "Grade Level", y = "Mean RIT Percentile")
    }