2016-12-02 48 views
0

我想创建一个闪亮的应用程序插值天气数据。当我尝试访问被动表达式中的数据时,我总是得到NULL。我不知道我错在哪里。我试图尽可能简单地模仿我的问题。 这里,我们去:RShiny - 使用selectInput访问反应表达式中的数据

我的数据表:

lon lat Temperature AirPressure 
50.0 25.0 12.1 1012.0 
51.0 26.0 13.4 1011.0 

的datatalbe的名字:myDataTable

我ui.R:

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

里面我的反应表达我想根据选择的内容访问数据。现在,当我做到以下几点:

1.测试

print(myDataTable$Temperature) 

结果(如预期):[1] 12.1 13.4

2.测试

print(myDataTable$input$getData) 

结果(不作为预计):NULL

3.测试

tempVal <- input$getData 
print(tempVal) 
print(myDataTable$tempVal) 

结果(未如预期):

[1]Temperature

NULL

回答

0

看来你是不正确的子集划分的数据,这里有3测试您在observe声明中的内容,以便您可以看到输出

#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

+0

ok了,很有意思:当我使用你的语法如下: “myDataTable [,名称(myDataTable)%的输入%$的getData]” 它的工作原理。我不...... – obrob

+0

请注意,'selectInput'是一个对象,所以你必须这样使用它 –

+0

我真的不明白语法。从来没有使用过这个。我可以在哪里找到一些如何读取它的信息?是否有一些标签可以帮助我们理解这里发生的事情。 – obrob