RShiny - 使用selectInput访问反应式表达式中的数据

时间:2016-12-02 10:11:24

标签: r null shiny

我想创建一个闪亮的app插值天气数据。当我尝试在反应式表达式中访问我的数据时,我总是得到NULL。我不知道我哪里错了。我试图尽可能简单地模仿我的问题。 我们走了:

我的数据表:

myDataTable

datatalbe的名称:selectInput(inputId = "getData", label = "used Data:", choices = c("Temperature","AirPressure"), selected = "Temperature" )

我的ui.R:

print(myDataTable$Temperature)

在我的反应表达中我想根据所选内容访问数据。现在,当我执行以下操作时:

1。测试

[1] 12.1 13.4

结果(如预期):print(myDataTable$input$getData)

2。测试

NULL

结果(不符合预期):tempVal <- input$getData print(tempVal) print(myDataTable$tempVal)

第3。测试

[1]Temperature

结果(不符合预期):

NULL

{{1}}

1 个答案:

答案 0 :(得分:0)

您似乎错误地对数据进行了子集化,这里是observe语句中的3个测试,因此您可以看到输出

#rm(list = ls())
library(shiny)

lon <- c(50,51)
lat <- c(25,26)
Temperature <- c(12.1,13.4)
AirPressure <- c(1012,1011)

myDataTable <- data.frame(cbind(lon,lat,Temperature,AirPressure))

ui <- fluidPage(
  selectInput(inputId = "getData",label = "used Data:",
              choices = c("Temperature","AirPressure"),selected = "Temperature"
  )
)

server <- function(input, output) {

  observe({
    # Test 1
    print(myDataTable$Temperature)
    # Test 2
    print(myDataTable[,names(myDataTable) %in% input$getData])
    # Test 3
    tempVal <- input$getData    
    print(myDataTable[,names(myDataTable) %in% tempVal])
  })
}
shinyApp(ui = ui, server = server)

enter image description here