2017-03-13 4 views
0

Der folgende Codeget_map in Markdown Dokument

map<-get_map(location=params$chosenState, zoom=6,maptype='hybrid',source="google") 
data<-sightings[sightings$State==params$chosenState, ] 
ggmap(map, base_layer=ggplot(aes(x=lng,y=lat),data=data)) +geom_point(color="red",alpha=0.3) 

funktioniert gut an der Konsole, vorausgesetzt, ich habe einen Datenrahmen genannt params einrichten und meine Daten in einem Datenrahmen genannt Sichtungen lesen. Es erzeugt dieses Diagramm, wenn Parameter $ selectedState "OH" ist.

enter image description here

Allerdings, wenn ich alles in ein Dokument Markdown

--- 
title: "UFOs" 
output: html_document 
params: 
    chosenState: "OH" 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = FALSE) 
library(ggmap) 
library(ggplot2) 
sightings<- read.csv("UFOs_coord.csv",header=TRUE) 
UFOPlot<-function(){ 
    map<-get_map(location=params$chosenState, zoom = 6,maptype='hybrid',source="google") 
    data<-sightings[sightings$State==params$chosenState, ] 
    ggmap(map, base_layer=ggplot(aes(x=lng,y=lat),data=data)) 
} 
``` 

## UFO Sightings 

Below is the locations of UFO sightings in ``r params$chosenState`` 
```{r} 
UFOPlot() 
``` 

und gehen bewegen es zu stricken, erhalte ich diese Fehlermeldung

Fehler if (is.waive (Daten) || leer (Daten)) return (cbind (Daten, PANEL = Integer (0))): fehlender Wert wo TRUE/FALSE benötigt Anrufe: ... lapply -> FUN -> -> f -> -> f

Ich frage mich, ob es etwas Grundlegendes über die Verwendung von ggmap in Markdown, dass ich vermisse? Dies ist das erste Mal, dass ich es jemals versucht habe. Hier

ist der Beginn der Datenrahmen Daten

 Date...Time Country   City State Shape  lat  lng 
9 12/19/16 18:30  USA Huber Heights OH Cylinder 39.85902 -84.11136 
21 12/18/16 19:00  USA  Lancaster OH Light 39.71368 -82.59933 
321 11/18/16 23:30  USA  Columbus OH Cylinder 39.96226 -83.00071 
326 11/18/16 19:15  USA Stone Creek OH Triangle 40.39729 -81.56206 
327 11/18/16 18:30  USA Carrollton OH Circle 40.57284 -81.08565 
336 11/17/16 21:30  USA  Athens OH Light 39.32924 -82.10126 

UPDATE:

Vielleicht hatte ich etwas falsch mit meiner logischen Subskribierung? dplyr und der von Dhiraj vorgeschlagene ggmap-Aufruf schienen den Trick zu machen. Dieses Dokument strickt versuchte gerade fein

--- 
title: "UFOs" 
output: html_document 
params: 
    chosenState: "OH" 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = FALSE, message= FALSE, warning=FALSE) 
library(ggmap) 
library(ggplot2) 
library(dplyr) 
sightings<- read.csv("UFOs_coord.csv",header=TRUE) 
UFOPlot<-function(){ 
    map<-get_map(location=params$chosenState, zoom = 6,maptype='hybrid',source="google") 
    data <- sightings %>% select(-Summary, -Shape) %>% filter(State==params$chosenState) 
    ggmap(map) + geom_point(data=data, aes(x=lng,y=lat), color="red", alpha=0.3) 

} 
``` 
## UFO Sightings 

Below is the locations of UFO sightings in ``r params$chosenState`` 
```{r} 
UFOPlot() 
``` 
+0

Ich gehe davon aus 'params $ chosenState' Ohio ist. Könnten Sie bitte einige Längenwerte aus 'Sichtungen' für Ohio hinzufügen, damit dies reproduzierbar ist? – Dhiraj

+0

richtig, ich habe es eingerichtet, um ein Abschriften-Dokument mit Parametern zu sein, so dass Sie einen Staat wählen konnten. Ich werde das OP bearbeiten, um das komplette Markdown-Dokument und den Kopf der Datendatei aufzunehmen. – jerH

Antwort

0

ich folgend in einem Codeabschnitt in einer rmarkdown Datei und es scheint zu funktionieren:

library(ggmap) 
lat <- 39.86+rnorm(10,0.5) 
lng <- -82.59 + rnorm(10, 0.5) 
sightings <- data.frame(cbind(lng,lat)) 

map<-get_map(location='Ohio', zoom = 6,maptype='hybrid',source="google") 
ggmap(map) + geom_point(data=sightings, aes(x=lng,y=lat))