홈>
모두 잘 지내길 바랍니다.서버의 반응적인 부분에 문제가 있습니다 (다른 설명이있는 경우). radioButtons를 사용하여TTS및NTTS를 선택하면 각각 mtcars 데이터의 1 : 6 및 7:11 열이 필요합니다. 원하는 출력과 일치하는 그림을 첨부했습니다. 나는 또한 내 코드를 첨부했다. 누군가가 문제가 있는지 알아낼 수 있습니까? 많은 감사합니다 :)
library(shiny)
library(tidyr)
library(dplyr)
library(readr)
library(DT)
data_table <- mtcars
# Define UI
ui <- fluidPage(
downloadButton('downLoadFilter',"Download the filtered data"),
radioButtons(inputId = "columns", label = "choose variable",
choices =c("All","TTS", "NTTS"),
selected = c("All")),
selectInput(inputId = "cyl",
label = "cyl:",
choices = c("All",
unique(as.character(data_table$cyl))),
selected = "4",
multiple = TRUE),
selectInput(inputId = "vs",
label = "vs:",
choices = c("All",
unique(as.character(data_table$vs))),
selected = "1",
multiple = TRUE),
DT::dataTableOutput('ex1'))
server <- function(input, output) {
thedata <- reactive({
if(input$columns=='All'){
data_table
}
else if (input$columns== 'TTS'){
data_table<- data_table[,c(1:6),drop=FALSE] }
else
data_table<- data_table[,c(7:11),drop=FALSE]
if(input$cyl != 'All'){
data_table<-data_table[data_table$cyl %in% input$cyl,]
}
if(input$vs != 'All'){
data_table<-data_table[data_table$vs %in% input$vs,]
}
else
data_table })
output$ex1 <- DT::renderDataTable(DT::datatable(filter = 'top',
escape = FALSE,
options = list(pageLength =
10,
scrollX='500px',autoWidth = TRUE),{
thedata() # Call reactive
}))
output$downLoadFilter <- downloadHandler(
filename = function() {
paste('Filtered data-', Sys.Date(), '.csv', sep = '')
},
content = function(path){
write_csv(thedata(),path) # Call reactive thedata()
})}
shinyApp(ui = ui, server = server)
-
답변 # 1
관련 자료
- ruby - 풋을 사용하여 여러 항목을 표시하는 방법은 무엇입니까?
- mysql - PHP를 사용하여 동일한 열에 저장된 여러 URL을 표시하는 방법은 무엇입니까?
- r - "across"를 사용하여 dplyr에서 여러 열 변경
- pandas - 여러 열에서 문자열 열 추출
- 동적 ID 선택기를 사용하여 각도 v10에서 동적 구성 요소 표시
- function - purrr 방법을 사용하여 나열된 열을 R의 문자열로 변환
- linux - 단일 명령에 여러 별칭 사용
- reactjs - JSX에서 삼항 연산자를 사용하여 리디렉션을 포함 할 수 없습니다
- javascript - Nodejs에서 axios를 사용하는 다중 get 요청
- sql - OR 문을 사용하여 가능한 여러 열에 Postgres JOIN
- ios - 유연성을 유지하기 위해 폭의 프레임 수정자를 사용하여 여러 열 목록의 1 개 열이 동일한 너비가되는 방법
- R에서 tidyverse를 사용하여 요약 한 후 열 유지
- python - xpath를 사용하여 href 태그에서 텍스트를 추출 할 수 없습니다
- C #을 사용한 사용자 입력 후 Python 출력을 C #에 표시
- angular - RxJs forkJoin을 사용하여 여러 API 호출을 단일 출력 배열로 병합
- python - Pandas Dataframe에서 상수보다 큰 여러 열의 값 찾기
- R에서 문자열을 여러 열로 분할
- python - 팬더에서 여러 열을 만드는 기능 적용
- Python Pandas는 여러 열로 그룹화하고 추가
- excel - 여러 열의 형식을 변경하되 첫 번째 행은 제외하고 데이터가있는 마지막 행까지만 포함
이 문제는 Shiny 또는 Datatable과 거의 관련이 없으며, 데이터를 부분 집합하고 덮어 쓰는 방법에서 비롯됩니다.
먼저 열을 부분 집합하고
data_table
를 덮어 쓰면vs
중 하나 또는cyl
더 이상 존재하지 않으며 누락 된 열을 기준으로 행을 필터링하면NULL
가 발생합니다. 모든 행이 손실됩니다.간단한 수정 : 하위 설정을 재정렬하고 행을 먼저 필터링 한 다음 열을 필터링합니다.