Subsetting data in shiny server.R file
我正在尝试使一个简单的Shiny应用程序正常工作(这将是更大事情的开始)。我的问题是,在应用程序的sever.R部分中设置数据似乎对我完全无效。
错误消息是:
Error in eval(expr, envir, enclos) : object 'localA3' not found
这是我的server.R文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # server.R library(ggmap) library(scales) library(grid) localA <- read.csv("local7.csv", header=TRUE) shinyServer( function(input, output) { output$map <- renderPlot({ sub <- switch(input$sub, "a" ="a", "b" ="b", "c" ="c") opt <- switch(input$opt, "data" ="data", "obs" ="obs") localx = reactive({ x <- subset(localA, factor==paste(sub)) return(x) }) localA3 <- localx() testmapA <- qmap("England", zoom = 6, color ="bw", legend ="topleft") testmapA + geom_point(aes(x = lon, y = lat, colour = localA3$opt, size = localA3$opt), data = localA3) }) } ) |
...这是我的UI.R文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # UI.R shinyUI(fluidPage( titlePanel("A Shiny Example"), sidebarLayout( sidebarPanel( helpText("Create maps with random data for UK local authorities."), selectInput("sub", label ="Choose a category to display", choices = c("a","b","c"), selected ="a"), selectInput("opt", label ="Choose a variable to display", choices = c("data","obs"), selected ="data"), sliderInput("range", label ="Range of interest:", min = 0, max = 100, value = c(0, 100)) ), mainPanel(plotOutput("map")) ) )) |
无论出于什么原因,R告诉我找不到对象'localA3'。我现在尝试以许多不同的方式对代码的子集部分进行编程-从通过函数的反应式表达式到简单的R代码。在Shiny之外有效的方法在server.R程序中不起作用。
任何人都可以给我有关我可能做错了什么的提示吗?
我的基本数据集" local7.csv"的前十个条目如下:
1 2 3 4 5 6 7 8 9 10 11 | lon lat data obs factor 1 -0.1277583 51.5073509 87.828234 20.49259318 a 2 0.1293497 51.5464828 68.79663358 98.0480588 a 3 -0.1997 51.6444 24.35460542 76.77994522 b 4 0.154327 51.439933 71.51349632 28.05491455 a 5 -0.2710568 51.5672808 91.31933313 69.15576621 c 6 0.013156 51.406025 57.98920169 56.12171479 a 7 -0.1588255 51.5517059 45.68928313 29.73514486 a 8 -0.098234 51.376165 29.47027315 96.1460748 b 9 -0.3415002 51.5250257 36.46005588 76.66948508 c 10 -0.0837 51.6516 43.57721438 50.65123884 c |
您需要将
1 2 | testmapA + geom_point(aes_string(x ="lon", y ="lat", colour = input$opt, size = input$opt), data = localA3) |