如何使用R引用下一行而不循环?

时间:2012-03-21 10:32:15

标签: r rgooglemaps

我正在玩RGoogle地图,并且能够在地图上绘制线条。我把我的lats和longs从csv加载到 coords 对象中。

我想暗示使用方向:PlotArrowsOnStaticMap

定义为:

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

我将 lat0 定义为 coords [,' lat']。 如何提供 lat1

该值是文件中的下一行 - 但我如何相对地描述它?伪代码中的 coords [+ 1,' lat']。

我应该做一些基本的阅读吗?

2 个答案:

答案 0 :(得分:4)

一个不优雅的工作是为你的lat和long创建新的列,与初始行相比,它们被提升一行。第一行的值包含在底部(如果没有意义,则替换为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)。

with(coords,PlotArrowsOnStaticMap(lat0 = lat,lon0 = lon,lat1 = lat1,lon1 = lon1 ......)

答案 1 :(得分:1)

常用的一些功能包括headtailembed

> 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