2
R의 shiny
패키지에는 위턱과 아래턱이있는 sliderInput
을 사용하는 슬라이더 위젯을 사용할 수 있습니다.In R Shiny 슬라이더 입력 값을 분리하고 필터링하는 방법
나는 상한값과 하한값을 분리하고 데이터 열을 필터링하여 해당 데이터를 UI.R
으로 전달할 수 있기를 바랍니다. 예를 들어
:
Server.R
library(shiny)
data <- read.csv('some_data_to_filter.csv')
# Define server logic for slider examples
shinyServer(function(input, output) {
# Reactive expression to compose a data frame containing all of
# the values
sliderValues <- reactive({
# Compose data frame
data.frame(
Name = c("Range"),
Value = as.character(c(paste(input$range, collapse=' '),)),
stringsAsFactors=FALSE)
})
# Show the values using an HTML table
output$values <- renderTable({
sliderValues()
})
})
UI.R
예에서는library(shiny)
# Define UI for slider demo application
shinyUI(fluidPage(
# Application title
titlePanel("Sliders"),
sidebarLayout(
sidebarPanel(
# Specification of range within an interval
sliderInput("range", "Range:",
min = 1, max = 1000, value = c(200,500))
),
# A table summarizing the values entered
mainPanel(
tableOutput("values")
)
)
))
I 데이터 판독 및 상기 I는 슬라이더를 가지고 하지만 거기에있는 것처럼 데이터 필터링은 없습니다.
이
은 분할 및 필터하기 위해 최선을 시도했지만, 그것은 오류가 발생합니다 : 나는 당신의 질문을 이해하면myrange <- reactive({ data.frame(strsplit(Value = input$slider))})
data <- data[data$colname <= as.numeric(myrange[2]),]
data <- data[data$colname >= as.numeric(myrange[2]),]
가 왜 문자 벡터 아닌'strsplit''입력 $의 slider'에 필요 샘플 데이터와 아래의 솔루션을 사용? –
아이디어는 생성 된 문자열을 슬라이더 범위로 분할하는 것입니다. 슬라이더 객체에 의해 생성 된 범위/문자열은 다음과 같습니다 : "50 100"'. 'data.frame (unlist (strsplit())) '을 사용하여 이것을 보통 R의 벡터 요소들로 변환 할 수 있습니다. 그러나 이것이 반응 적이라는 사실은 사물을 복잡하게 만듭니다. 두 개의 숫자를'input $ slider'에서 분리하여 데이터를 부분 집합 화하는 데 사용할 수있는 방법을 알고 있습니까? –
정말 필요하다고 생각하지 않습니다. 'input $ range'는 이미 최소값과 최대 값을 포함하는 길이가 2 인 숫자 벡터입니다. 'num [1 : 2] 200 614'. 즉'input $ range [1]'과'input $ range [2]'는 왼쪽과 오른쪽 슬라이더 값을 줄 것입니다. –