我想基于反应性数据表创建DT数据表,条形图和传单地图,用户可以在其中过滤他们感兴趣的内容。想法是,用户可以选择几个类别变量的级别,这些变量将显示在数据表,曲线图和地图中。 但是,我总是得到一个错误,即找不到对象“输入”。如何创建可在DT数据表,曲线图和地图中显示的反应性数据框?
我尝试创建一个反应性函数,该函数允许使用“子集”或“过滤器”进行过滤,但是出现了与上述相同的错误消息。我在StackOverflow和google上寻找了类似的案例,这导致我尝试在不定义反应函数的情况下过滤内容,并将过滤后的fil移到server.R,以防无法从全局R访问内容。
global.R
load("sktrad.Rdata")
options ( encoding = "UTF-8" )
data_fil <- reactive({
data <- subset(
sktradjkp,
Stamomkret >= input$stamk[1] & Stamomkret <= input$stamk[2],
Kommun == input$KomS,
Tradslag == input$TraS,
Tradstatus == input$TraSt
)
})
ui.R
sidebar = dashboardSidebar(
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem("Information",
tabName = "info"
),
sliderInput(inputId = "stamk",
label = "Trädiameter inkluderat",
min = min(sktradjkp$Stamomkret),
max = max(sktradjkp$Stamomkret),
value = c(min(sktradjkp$Stamomkret), max(sktradjkp$Stamomkret)),
sep = "",
step = 10,
post = " cm "
),
selectizeInput(inputId = "KomS",
label = "Välj en eller flera kommuner",
choices = unique(sktradjkp$Kommun),
multiple = T,
selected = "Jönköping"
),
selectizeInput(inputId = "TraS",
label = "Välj en eller flera Trädslag",
choices = unique(sktradjkp$Tradslag),
multiple = T,
selected = "Ek"
),
selectizeInput(inputId = "TraSt",
label = "Välj en eller flera trädstatus",
choices = unique(sktradjkp$Tradstatus),
multiple = T,
selected = "Friskt"
)
)
)
)
server.R
output$DataSk <- DT::renderDataTable(DT::datatable(data_fil(), rownames = FALSE,
options=list(scrollX=TRUE)
)
)
output$BarPlot <- renderPlotly({
ggplotly(
ggplot(data_fil(), aes_string(x=input$StrToPlot, y="Stamomkret")) +
stat_summary(fun.y="mean", geom="bar") + theme(axis.text.x = element_text(angle = 45, hjust = 1,size=12))
)
})
output$coolplot <- renderPlot({
ggplot(data_fil(), aes_string("Stamomkret")) +
geom_histogram()
})
我希望得到一个反应函数/数据框,该函数/数据框会根据用户输入做出反应,并将结果显示在DT数据表,绘图中以及稍后在传单地图中显示。