2016-03-16 86 views
0

我在使用googleVisgvisGeoChart()運行某些代碼來繪製美國地圖上的標記時出現問題。我可以運行以下示例,沒有任何問題:gvisGeoChart無法識別標記的緯度/經度

require(datasets) 
library(googleVis) 

GeoMarker <- gvisGeoChart(Andrew, "LatLong", 
          sizevar='Speed_kt', 
          colorvar="Pressure_mb", 
          options=list(region="US")) 
plot(GeoMarker) 

這是我使用的那種代碼。我試圖將數值列表放入數據框中,然後使用這些數據在美國地圖上繪製標記。

library(googleVis) 
library(ggmap) 

cities <- c("Norman, OK", "Madison, WI", "Tallahassee, FL") 
test <- as.data.frame(cities) 
test$rank <- c(2,1,3) 
colnames(test) <- c("City","Rank") 
geocodes <- geocode(as.character(test$City)) 
new <- data.frame(test[,1:2],geocodes) 

TestPlot <- gvisGeoChart(new, sizevar='Rank',options=list(region="US")) 
plot(TestPlot) 

然後我收到以下錯誤:

Error in data.frame(Latitude = numeric(0), Longitude = numeric(0), Rank = c(2, : arguments imply differing number of rows: 0, 3

我已搜查,並在R和特別是除了文檔關於gvisGeoChart使用googleVis找不到太多的教程。我檢查了Andrew數據幀並使用了str(),並且在兩個數據集之間找不到任何不同的東西。

感謝您的任何幫助,請讓我知道如果您需要任何澄清!

回答

1

對我來說這項工作:

new$latlong<-paste(new$lat, new$lon, sep=":") 
TestPlot <- gvisGeoChart(new, "latlong", colorvar='Rank',options=list(displayMode="Markers", region="US")) 
plot(TestPlot) 

我認爲這只是你的經/緯度進行了格式化的方式。