繁体   English   中英

如何在Shiny上正确使用checkboxInput-R代码

[英]how to properly use checkboxInput on Shiny - R code

我有一个可以使用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>这是工作脚本的一部分。
闪亮的用户界面

library(shiny)
shinyUI(navbarPage("MAP results",

  tabPanel("Summaries",

          sidebarLayout(

            sidebarPanel(
              selectInput("testname",           
                          "Select the test to visualize",
                          levels(mapdata$MeasurementScaleName)),
              selectInput("termname",         
                           "Select the term the test was taken",
                           levels(mapdata$TermName)),
              selectInput("ritorpercent",
                          "Display RIT scores or percentiles",
                          choices = c("RIT Scores", "Percentiles")),
              checkboxInput("gender", "Display Gender differences"),
              ),

          mainPanel(
            plotOutput("mapgraph")
            )
          )
        ),

  tabPanel("Growth visualizations")
        )
)

并且是Server.R脚本的一部分。

服务器

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)

  })
})

现在,我要使用我的checkboxInput(“ gender”)制作相同的条形图,但要进行性别隔离。 ...而且我想我可以将其添加到server.r

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网站上查找类似情况,但我能找到的所有代码都没有。

关于如何使用该复选框更改图形的任何指导

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

好...谢谢NicE。 我确实在想办法。 我要做的就是将代码放在其他{}之间。 然后效果很好。 – Franky '15 Feb 2在9:43

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM