【问题标题】:Pass number as part of variable name in Shiny在 Shiny 中将数字作为变量名的一部分传递
【发布时间】: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 周围的引号一起使用。

标签: r shiny


【解决方案1】:

找到一些有用的东西:

hist(unlist(df[paste0("var", input$year)]))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 2017-04-18
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    相关资源
    最近更新 更多