gpt4 book ai didi

r - 在 R Shiny 中如何分离 slider 输入值并用它们进行过滤

转载 作者:行者123 更新时间:2023-12-04 11:33:18 24 4
gpt4 key购买 nike

在 R 的 shiny 包中,您可以使用具有上限和下限的 sliderInput 拥有一个 slider 小部件。

在将数据传递给 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")
)
)
))

在上面的示例中,我读入了数据并且有一个 slider ,但是没有像我希望的那样过滤数据。

这是我最好的拆分和过滤尝试,但它会引发错误:

myrange <- reactive({ data.frame(strsplit(Value = input$slider))})
data <- data[data$colname <= as.numeric(myrange[2]),]
data <- data[data$colname >= as.numeric(myrange[2]),]

最佳答案

如果我正确理解您的问题,您希望根据 slider 输入的两个限制对数据进行子集化。如果是这样,请使用下面的解决方案和示例数据

library(shiny)

# Sample Data
area <- seq(from=10,to=100, by=10);peri <- seq(from=2710.1,to=2800.1, by=10)
shape <- seq(from=0.1,to=1, by=0.1);perm <- seq(from=1,to=100, by=10)
my_data <- as.data.frame(cbind(area,peri,shape,perm))

ui = fluidPage(
sidebarPanel(sliderInput("range", "Select Range",min = 1, max = 10, value = c(2, 5)),width = 3),
mainPanel(tableOutput("view"))
)

server = function(input, output) {
output$view <- renderTable({
test <- my_data[input$range[1]:input$range[2],]
test},include.rownames=FALSE)
}
runApp(list(ui = ui, server = server))

关于r - 在 R Shiny 中如何分离 slider 输入值并用它们进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27772844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com