我想创建一个闪亮的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}}
答案 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)