Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Shining server.R文件中子集数据_R_Ggplot2_Shiny - Fatal编程技术网

在Shining server.R文件中子集数据

在Shining server.R文件中子集数据,r,ggplot2,shiny,R,Ggplot2,Shiny,我正试图得到一个简单的闪亮的应用程序工作这将是一个更大的开始。我的问题是,应用程序的服务器.R部分中的子集数据似乎对我根本不起作用 错误消息是: evalexpr、envir、enclose中出错:未找到对象“localA3” 这是我的server.R文件: # server.R library(ggmap) library(scales) library(grid) localA <- read.csv("local7.csv", header=TRUE) shinyServer(

我正试图得到一个简单的闪亮的应用程序工作这将是一个更大的开始。我的问题是,应用程序的服务器.R部分中的子集数据似乎对我根本不起作用

错误消息是:

evalexpr、envir、enclose中出错:未找到对象“localA3”

这是我的server.R文件:

# 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)

    })
  }
)
不管出于什么原因,R告诉我它找不到对象“localA3”。现在,我已经尝试以多种不同的方式对代码的子集部分进行编程——从函数上的被动表达式到简单的R代码。在Shiny之外工作的东西在server.R程序中不起作用

谁能给我一些提示,说明我可能做错了什么

我的基本数据集“local7.csv”的前十个条目如下:

    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
您需要将aes调用更改为aes_字符串,并将所有元素设置为字符串,以便与geom_点保持一致。在同时使用对象和字符串之前。在你的uiR末尾的以下小变化对我有用

testmapA +
          geom_point(aes_string(x = "lon", y = "lat", colour = input$opt, size = input$opt),   data = localA3)

localx到localx?谢谢。我想我已经试过了,会尽快检查的。不幸的是,Google API现在让我失望了403错误代码-最终会自行修复。@jazzurro,因为localx是一个反应式表达式,所以必须在闪亮的框架中使用localx调用它。@cdeterman啊,对了。谢谢你,谢谢,真的很有趣。不幸的是,它似乎对我不起作用。我收到另一条众所周知的错误消息——错误:ggplot2不知道如何处理类的数据。你可能理解为什么这会慢慢让我发疯。。。哦,不,等一下,它能用!!!非常感谢你。我已经在代码中试用了jazzurro上面的技巧——当我试用了你上面的技巧时,它就停止工作了。我非常感激@简,很乐意帮忙。如果这让你满意,请接受答案。完成-你是一个传奇!
testmapA +
          geom_point(aes_string(x = "lon", y = "lat", colour = input$opt, size = input$opt),   data = localA3)