【发布时间】:2017-10-21 00:32:46
【问题描述】:
我想在 Shiny 中传递一个数字,然后将其用作变量名称的一部分,以确定输出中使用的变量。
在一个包含两个变量 var1 和 var2 的 dataframe(df) 的简单示例中,我希望允许用户选择 1 或 2,并使用它来引用 var1 或 var2。 (在我的真实情况下,这些是几年,输出是一张地图。)我的猜测是这样的:
library(shiny)
var1=c(1,2,3,4)
var2=c(2,4,6,8)
df=data.frame(var1, var2)
ui<-fluidPage(
sliderInput(inputId = "year",
label = "Choose a variable",
value = 2, min = 1, max = 3),
plotOutput("yr")
)
server<- function(input, output) {
output$yr <- renderPlot({
title <- "hist of var 1 or 2"
hist(df$var(input$year)????, main = title)
})
}
shinyApp(ui = ui, server = server)
带有 ???? 的行是明显的问题。
【问题讨论】:
-
你能用
df[[ paste0("var", input$year) ]]吗? -
hist(df[[ paste0("var", input$year]]))似乎不起作用,也不能与 $before var 或 input$year 周围的引号一起使用。