选择输入不起作用以在R Shiny中生成不同的图

时间:2017-08-13 01:33:55

标签: r rstudio shiny shiny-server

我正在尝试创建一个依赖于所选输入的地图。我浏览了所有的例子,但由于某种原因,我的代码似乎对我来说正确,但显然它缺少一些东西,因为它不起作用。 ui似乎工作得很好,因为它产生了我想要的滑动条,但它没有使用依赖输入制作任何地图。任何帮助将不胜感激!

这是我的数据:

> datamap
         Country.code EVENTONE EVENTTWO EVENTTHREE
1  Bosnia and Herzegovina       11        1          5
2             South Korea        1        4          4
3             Philippines        1        5          6
4               Indonesia        1        6          8
5                Thailand        1        0          9
6                Mongolia        1        0          3
7      Russian Federation        1        0          4
8                 Ukraine        1        0          8
9                Slovenia        1        0          5
10               Mongolia        1        0          0
11               Pakistan        1        0          0
12             Bangladesh        1        0          0

这是我的代码:

library(shiny)
library(ggplot2)
shinyUI(fluidPage( 
  titlePanel(title="Events in the World"),
  sidebarLayout(
    sidebarPanel(
           selectInput("var", "Choose Event:",
                       choices=c("Event One" = "EVENTONE", 
                            "Event Two" = "EVENTTWO", 
                            "Event Three" = "EVENTTHREE"))
    ),

    # Create a spot for the barplot
    mainPanel(
      plotOutput("TheMap")  
        )
     )
    )
   )


shinyServer(function(input, output) {

  datamap <- read.csv(".../Desktop/mapexcel1CSV.csv",             
  stringsAsFactors=FALSE, header=TRUE)
    sPDF <- joinCountryData2Map(datamap, joinCode='NAME',       
     nameJoinColumn='Country.code')


  output$TheMap <- renderPlot({
  mapPolys(sPDF, nameColumnToPlot= input$var
                        ,mapRegion="world",
                        missingCountryCol="dark grey", catMethod = 
                        "fixedWith", numCats=20, 
                        oceanCol="light blue")}

  )
 })

shinyApp(ui = ui, server = server)

非常感谢任何帮助!!!

1 个答案:

答案 0 :(得分:0)

我用你的代码创建了一个可重现的例子。在回应输入变化时,ui实际上看起来很好。绘图会更改是选择事件一,二或三。我定义了我的ui和服务器代码(ui = shinyUI(fluidPage(...))和server = shinyServer(函数(输入,输出){...})))。我还在顶部添加了库(rworldmap),以便在下次运行应用程序时将包加载到环境中。

您的代码中的某些功能可能被您环境中的另一个包屏蔽(尝试重新启动R会话)。您也可以尝试在ui和服务器代码之外读取csv文件。最后,也许尝试将csv文件保存为rda,然后加载rda(以测试这是否是可能的文件读取问题)。

看看这是否有帮助并跟进其他问题!