2012-03-21 26 views
1

我正在玩RGooglemaps,並且能夠在地圖上繪製線條。我把我的lats和longs從csv裝入coords對象。如何使用R引用下一行,而不循環?

我想使用暗示方向:PlotArrowsOnStaticMap

定義爲:

PlotArrowsOnStaticMap(MyMap, lat0, lon0, lat1 = lat0, lon1 = lon0, TrueProj = TRUE, FUN = arrows, add = FALSE, verbose = 1,...) 

我定義lat0如像COORDS [, 'LAT']。 我該如何給lat1

該值是文件中的下一行 - 但我如何描述相對? (COORDS [+ 1,「LAT」在僞代碼。

有一些基本的閱讀我應該做的事?

回答

4

一個不雅的解決辦法是創建在升檔爲您的緯度和長新列由一排相對於初始行。第一行的值被包裹的底部(或替換NA,如果這沒有意義)。

coords$lat.1<-coords$lat[c(2:length(coords$lat), 1)] 
coords$lon.1<-coords$lon[c(2:length(coords$lon), 1)] 

您現在有兩個列LAT(LAT和lat1)和兩列long(lon,lon1)。

與(COORDS,PlotArrowsOnStaticMap(lat0 = LAT,lon0 = LON,LAT1 = LAT1,lon1 = lon1 ...)

+0

我不會說'不雅',它在Excel中跳動,它會解決問題。午餐時我會給你一個旋轉。謝謝 – gaijintendo 2012-03-21 11:36:36

+0

如果你經常這樣做,可以考慮編寫一個小函數,它會根據@ Etienne的代碼創建一個臨時矩陣並創建該圖。這樣你就不會在實際的數據文件中出現額外的列。 – 2012-03-21 12:32:38

+0

@ gaijintendo,如果此答案滿足您,請使用綠色複選標記接受回覆。 – 2012-03-25 23:36:28

1

常用的一些做這包括headtail,並embed功能:

> tmp <- 1:10 
> cbind(head(tmp,-1), tail(tmp,-1)) 
     [,1] [,2] 
[1,] 1 2 
[2,] 2 3 
[3,] 3 4 
[4,] 4 5 
[5,] 5 6 
[6,] 6 7 
[7,] 7 8 
[8,] 8 9 
[9,] 9 10 
> embed(tmp, 2) 
     [,1] [,2] 
[1,] 2 1 
[2,] 3 2 
[3,] 4 3 
[4,] 5 4 
[5,] 6 5 
[6,] 7 6 
[7,] 8 7 
[8,] 9 8 
[9,] 10 9 
相關問題