每次用户更改年份时,我都会更新一个数据框,让我们称之为mydata。
在输出中,我希望有一个表格可以选择要显示的列,但我喜欢"选择"参数(在checkboxGroupInput中)根据年份不同。
我当前代码的一小部分:
Ui:
sliderInput("year","Choose the year",min=2013,max=2018,value=2017,step=1,sep=""),
conditionalPanel(condition="input.year==2013",
checkboxGroupInput("show_vars13", "Choose variables to show:",colnames13,
selected=c(var1,var2))
),
conditionalPanel(condition = "input.year==2014",
checkboxGroupInput("show_vars14","Choose variables to show:",colnames14,
selected=c(c(var1,var2))
),
conditionalPanel(condition="input.year==2015",
checkboxGroupInput("show_vars15","Choose variables to show:",colnames15,
selected=c(var1,var2))
),
conditionalPanel(condition="input.year==2016",
checkboxGroupInput("show_vars16","Choose variables to show:",colnames16,
selected=c(var1,var2))
),
conditionalPanel(condition="input.year==2017",
checkboxGroupInput("show_vars17","Choose variables to show:",colnames17,
selected=c(var1,var2))
),
tableOutput("data")
服务器:
output$data <- renderTable({
year <- as.numeric(substr(input$year,3,4))
for (i in 13:17){
if (year==i){
show_vars <- get(paste("input$show_vars",i,sep=''))
}
}
return(mydata[, show_vars, drop = FALSE])
})
此代码不起作用。 R Shiny返回&#34;对象&#39;输入$ show_vars17&#39;找不到&#34;
答案 0 :(得分:1)
尝试
show_vars <-input[[paste0("show_vars",i)]]
答案 1 :(得分:0)
在
show_vars <- get(paste("input$show_vars",i,sep=''))
,
"input$show_vars"
只是一个字符串..
如果你想引用变量,删除引号,并写:
show_vars <- get(paste(input$show_vars,i,sep=''))