Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201894

Shiny not detecting input in output

$
0
0

If I run the following code, everything runs fine:

    library(dplyr)
    library(tidyr)
    library(shiny)

    id <- 1:100
    gender <- sample(c('M','F'), 100, replace=TRUE)
    age <- sample(18:22, 100, replace=TRUE)
    ethnicity <- sample(c('W','B','H','A','O'), 100, replace = TRUE)
    grade <- sample(LETTERS[1:4], 100, replace=TRUE)
    df <- cbind(id,gender,age,ethnicity,grade) %>% as.data.frame()

    list1 <- list("id"="id","gender"="gender","age"="age","ethnicity"="ethnicity","grade"="grade")
    list2 <- list("id"="id","gender"="gender","age"="age","ethnicity"="ethnicity","grade"="grade")

    ui <-fluidPage(

      selectInput("picker1", "PICKER 1", choices = list1, selected = "gender"),
      selectInput("picker2", "PICKER 2", choices = list2, selected = "grade"),
      tableOutput("crosstabs")

    )

    server <- function(input,output,session){

      output$crosstabs <- renderTable({

        t<-df %>% select_all() %>% select(-id) %>%
          pivot_longer(cols = input$picker1) %>%
          count(name,value, grade) %>% pivot_wider(names_from = grade, values_from = n)
        t
      })

    }

    shinyApp(ui,server)

But when I update output$crosstabs to include input$picker2, it returns an error. I'm rather confused, as I'm using the same structure, but simply with grade swapped out for input$picker2:

output$crosstabs <- renderTable({

    t<-df %>% select_all() %>% select(-id) %>%
      pivot_longer(cols = input$picker1) %>%
      count(name,value, input$picker2) %>% pivot_wider(names_from = input$picker2, values_from = n)
    t
  })

What exactly is happening here?


Viewing all articles
Browse latest Browse all 201894

Trending Articles