2017-12-25 36 views
0

표시 할 레지스터를 선택하려면 checkboxGroupInput을 사용하려고합니다. 그러나 여러 조건을 통해 데이터를 필터링 할 때 작동하지 않습니다.빛나는 여러 조건을 가진 FIELD 테이블

라이브러리 (반짝)

ui <- fluidPage(

    titlePanel("Shiny Pokédex"), 

    sidebarLayout(
    sidebarPanel(
     checkboxGroupInput("Generation", "Select Generation:", 
          c("First" = 1, 
          "Second" = 2, 
          "Third" = 3, 
          "Forth" = 4, 
          "Fifth" = 5, 
          "Sixth" = 6), 
          inline = T) 
    ), 
    mainPanel(
     dataTableOutput("Generation") 
    ) 
) 
) 

server <- function(input, output) { 
    pokemon <- read.csv("pokemon.csv") 

    output$Generation <- renderDataTable({ 
     pokemon[pokemon$Generation == input$Generation,-11] 
    }) 
} 

shinyApp(ui = ui, server = server) 

내 목표는 동시에 하나 이상의 세대를 필터링 할 수 있습니다 : 이것은 내가 (사용 된 데이터가 here을 다운로드 할 수 있습니다) 사용하고 코드입니다. 하나의 조건으로 만 작업 할 때 작동하지만 두 개 이상의 옵션을 클릭하면 예상대로 출력되지 않습니다.

답변

1

==을 사용하고 있는데, 이는 동등 함을 나타냅니다.

1 == 1 
# [1] TRUE 
1 == 2 
# [1] FALSE 

하지만 한쪽으로의 배수 일을 시작할 때 : 즉이 경우

1 == c(1,2) 
# [1] TRUE FALSE 

를,은 1 1 같다 "고 말한다 1 2 동일하지 않습니다 "그것은 당신이 원하는 것이 아닙니다. TRUE은 모든 행에 걸쳐 재활용되어 모든 것을 반환합니다.

는 이제 %in%을 해보자 :

1 %in% 1 
# [1] TRUE 
1 %in% c(1,2) 
# [1] TRUE 
c(1,3,4) %in% c(1,2) 
# [1] TRUE FALSE FALSE 

세트 - 회원과 운영자의 왼쪽과 같은 길이의 logical 벡터를 돌려 원하는 속성이 있습니다.

output$Generation <- renderDataTable({ 
    pokemon[pokemon$Generation %in% input$Generation,-11] 
}) 
:

사용에 적용, 만에 하나 개의 반응성 구성 요소를 변경