샤이니 내 동적 변수에서 데이터 프레임 행 필터링

Twitch_City

저는 디자인 변수 (요인)와 응답 변수 (숫자)의 존재를 기반으로 데이터 세트를 가져와 UI 구성 요소를 생성하는 반짝이는 함수를 작성하고 있습니다.

앱의 모든 변수 ( designUI 요소) 를 숨기거나 표시하는 확인란 입력 이 있고 디자인 요소 수준에 따라 특정 행을 필터링 할 수도 있습니다. 데이터 세트의 요소 수를 알 수 없으므로 일반적으로 생성해야합니다.

전에 함수 내, ui그리고 server정의, 나는 요인의 모든 변수를 찾아에 대한 관련 매개 변수를 생성 checkboxGroupInputs한 다음에 ui사용 lapply하고 do.call인터페이스에 추가 할 수 있습니다. 그러나 이제 행을 필터링하는 데 사용할 필요가 있으며 그 방법을 잘 모르겠습니다.

설명하기 위해 MWE를 준비했습니다.

data(iris)
iris$Species2 <- iris$Species

filterex <- function(data = NULL){
  library(shiny)

  # Get design variables (factors) and response variables:
  dvars <- names(which(sapply(data, class) == "factor"))
  rvars <- names(which(sapply(data, class) != "factor"))

  # Generate inputs for all design factor filters:
  num_filters <- length(dvars)
  filters <- list()
  for (i in 1:num_filters){
    filt <- dvars[[i]]
    filters[[i]] <- list(inputId = filt, label = filt,
                         choices = levels(data[[filt]]),
                         selected = levels(data[[filt]]))
  }

  ## UI #############################
  ui = fluidPage(
    titlePanel("Dynamic filtering example"),
    sidebarPanel(
      checkboxGroupInput(inputId = "design", label = "Design Variables",
                         choices = dvars, selected = dvars),
      # Add filter checkboxes:
  lapply(filters, do.call, what = checkboxGroupInput)),
    mainPanel(
      dataTableOutput("data"))
  )

  ## SERVER #########################
  server = function(input, output, session) {

    # SUBSET DESIGN COLUMNS BASED UPON INPUTS:
    dat_subset <- reactive({
      df <- data[, c(input$design, rvars), drop = FALSE]
      # NEED TO INCORPORATE CODE TO SUBSET ROWS HERE
      return(df)
    })

    output$data <- renderDataTable({
      dat_subset()
      })
  }
  runApp(list(ui = ui, server = server))
}

filterex(iris)

내 문제는 다음과 같습니다.

  1. [ 해결됨 ] 필터 체크 박스가 생성되는 것으로 보이지만 (11:19 행) 예상대로 앱에 포함시킬 수 없습니다.
  2. 그들이 추가하면, 나는 확실히 라인 (40)의 주위에 필요에 따라 행을 필터링을 활용하는 방법이 아니에요 (예를 들어, 취소 할 수 있어야 setosa에서 Species해당 행을 숨기기 위해).

어떤 조언이라도 정말 감사하겠습니다! 다른 많은 스레드를 살펴 보았지만 내가 본 모든 솔루션은 특정 데이터 세트에 맞게 조정되었습니다 (따라서 변수의 수와 이름은 선험적으로 알려져 있습니다).

완전한

도착한 솔루션과 유사하게 필터 및 동적 부분 집합 을 구축 할 lapply오버 for루프를 고려하십시오 .

filterex <- function(data = NULL){

  # Get design variables (factors) and response variables:
  dvars <- names(which(sapply(data, class) == "factor"))
  rvars <- names(which(sapply(data, class) != "factor"))

  # Generate inputs for all design factor filters:
  filters <- lapply(dvars, function(d) {
    list(inputId = d, label = d,
         choices = levels(data[[d]]),
         selected = levels(data[[d]]))
  })

  ## UI #############################
  ui = fluidPage(
    titlePanel("Dynamic filtering example"),
    sidebarPanel(
      checkboxGroupInput(inputId = "design", label = "Design Variables",
                         choices = dvars, selected = dvars),
      # Add filter checkboxes:
      lapply(filters, do.call, what = checkboxGroupInput)),
    mainPanel(
      dataTableOutput("data"))
  )

  ## SERVER #########################
  server = function(input, output, session) {

    # SUBSET DESIGN COLUMNS BASED UPON INPUTS:
    dat_subset <- reactive({
      df <- data[, c(input$design, rvars), drop = FALSE]

      # DF SUBSET LIST
      dfs <- lapply(dvars, function(d) {
        df[df[[d]] %in% input[[d]],]
      })
      # ROW BIND ALL DFs
      df <- do.call(rbind, dfs) 
      return(df)
    })

    output$data <- renderDataTable({
      dat_subset()
    })
  }
  runApp(list(ui = ui, server = server))
}

filterex(iris)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동시에 데이터 프레임 행 필터링 및 제한

분류에서Dev

데이터 프레임에서 행 필터링

분류에서Dev

조건에 따라 데이터 프레임 행 필터링 Pandas

분류에서Dev

열에 따라 데이터 프레임 행 필터링

분류에서Dev

데이터 프레임 목록 / 동적 변수 구성에서 데이터 프레임에 액세스하여이를 수행합니다.

분류에서Dev

데이터 프레임에서 동적으로 행 분할

분류에서Dev

Pandas 데이터 프레임에서 동적으로 조인 수행

분류에서Dev

Pandas 데이터 프레임은 데이터 프레임 내에서 조건에 따라 선택한 행에만 람다를 적용합니다.

분류에서Dev

PySpark-이 데이터 프레임에서 행을 필터링하는 방법

분류에서Dev

팬더 데이터 프레임을 그룹 내에서 변경 사항을 표시하는 행으로 만 필터링하는 방법은 무엇입니까?

분류에서Dev

동적 스키마에서 데이터 프레임을 시작하거나 스키마를 충족하지 않는 행을 필터링합니다.

분류에서Dev

동시에 내림차순 행 및 열별로 데이터 프레임 정렬

분류에서Dev

R : 데이터 프레임 내에서 행 재정렬

분류에서Dev

Pandas 데이터 프레임에서 행을 필터링하려는 NaN 값

분류에서Dev

Pandas : 필터링 된 데이터 프레임에서 행 범위 및 열 선택

분류에서Dev

Pandas : 익명 데이터 프레임에서 loc으로 행 필터링

분류에서Dev

Pandas 데이터 프레임에서 필터링 한 후 행 삭제

분류에서Dev

데이터 프레임에서 groupby를 사용하여 데이터 필터링 및 요소 별 빼기 수행

분류에서Dev

Pyspark : 행당 null 값 수를 기반으로 데이터 프레임 필터링

분류에서Dev

데이터 프레임에서 빈 열 값이있는 행을 필터링 할 수 없습니다.

분류에서Dev

Pandas 데이터 프레임의 특정 조건에 따라 행 필터링

분류에서Dev

데이터 프레임에서 데이터 필터링

분류에서Dev

Pandas 데이터 프레임에서 행 이동 추가

분류에서Dev

Pandas 데이터 프레임에 행 현명한 함수 적용

분류에서Dev

빈 데이터 프레임 내의 모든 위치가 채워질 때까지 한 데이터 프레임의 행을 다양한 행의 빈 데이터 프레임에 순차적으로 할당합니다.

분류에서Dev

행 길이가 무한한 다른 데이터 프레임에서 데이터 프레임을 동적으로 생성하는 방법이 있습니까?

분류에서Dev

PySpark / Delta 데이터 프레임에서 효율적인 실행

분류에서Dev

데이터 프레임에서 선택적 행 제거

분류에서Dev

pyspark 데이터 프레임을 동적으로 필터링하는 메서드 호출을 빌드합니다.

Related 관련 기사

  1. 1

    동시에 데이터 프레임 행 필터링 및 제한

  2. 2

    데이터 프레임에서 행 필터링

  3. 3

    조건에 따라 데이터 프레임 행 필터링 Pandas

  4. 4

    열에 따라 데이터 프레임 행 필터링

  5. 5

    데이터 프레임 목록 / 동적 변수 구성에서 데이터 프레임에 액세스하여이를 수행합니다.

  6. 6

    데이터 프레임에서 동적으로 행 분할

  7. 7

    Pandas 데이터 프레임에서 동적으로 조인 수행

  8. 8

    Pandas 데이터 프레임은 데이터 프레임 내에서 조건에 따라 선택한 행에만 람다를 적용합니다.

  9. 9

    PySpark-이 데이터 프레임에서 행을 필터링하는 방법

  10. 10

    팬더 데이터 프레임을 그룹 내에서 변경 사항을 표시하는 행으로 만 필터링하는 방법은 무엇입니까?

  11. 11

    동적 스키마에서 데이터 프레임을 시작하거나 스키마를 충족하지 않는 행을 필터링합니다.

  12. 12

    동시에 내림차순 행 및 열별로 데이터 프레임 정렬

  13. 13

    R : 데이터 프레임 내에서 행 재정렬

  14. 14

    Pandas 데이터 프레임에서 행을 필터링하려는 NaN 값

  15. 15

    Pandas : 필터링 된 데이터 프레임에서 행 범위 및 열 선택

  16. 16

    Pandas : 익명 데이터 프레임에서 loc으로 행 필터링

  17. 17

    Pandas 데이터 프레임에서 필터링 한 후 행 삭제

  18. 18

    데이터 프레임에서 groupby를 사용하여 데이터 필터링 및 요소 별 빼기 수행

  19. 19

    Pyspark : 행당 null 값 수를 기반으로 데이터 프레임 필터링

  20. 20

    데이터 프레임에서 빈 열 값이있는 행을 필터링 할 수 없습니다.

  21. 21

    Pandas 데이터 프레임의 특정 조건에 따라 행 필터링

  22. 22

    데이터 프레임에서 데이터 필터링

  23. 23

    Pandas 데이터 프레임에서 행 이동 추가

  24. 24

    Pandas 데이터 프레임에 행 현명한 함수 적용

  25. 25

    빈 데이터 프레임 내의 모든 위치가 채워질 때까지 한 데이터 프레임의 행을 다양한 행의 빈 데이터 프레임에 순차적으로 할당합니다.

  26. 26

    행 길이가 무한한 다른 데이터 프레임에서 데이터 프레임을 동적으로 생성하는 방법이 있습니까?

  27. 27

    PySpark / Delta 데이터 프레임에서 효율적인 실행

  28. 28

    데이터 프레임에서 선택적 행 제거

  29. 29

    pyspark 데이터 프레임을 동적으로 필터링하는 메서드 호출을 빌드합니다.

뜨겁다태그

보관