我試圖讓一個簡單的Shiny應用程序工作(這將是更大的事情的開始)。我的問題是,在應用程序的sever.R部分中對數據進行子集處理對我來說似乎沒有任何作用。在閃亮的server.R文件中設置數據
的錯誤信息是:
錯誤的eval(表達式,ENVIR,enclos):對象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)
})
}
)
...這是我的UI.R文件:
# 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代碼。 Server.R程序無法在Shiny外工作。
任何人都可以給我任何提示,我可能會做錯什麼?是
前十個我的基礎數據集「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
'localx()'到'localx'? – jazzurro 2014-10-02 13:24:12
謝謝。我想我已經嘗試過了,會盡快檢查。不幸的是,Google API現在讓我失望了(403錯誤代碼 - 最終會自行修復)。 – Jan 2014-10-02 13:44:15
@jazzurro,因爲'localx'是一個反應表達式,所以必須在Shiny框架中用'localx()'調用它。 – cdeterman 2014-10-02 13:46:07