从经度和纬度到细胞数量

时间:2015-06-10 13:10:23

标签: r

我有一个像这样的数据框

 LonSHIP  LatSHIP LonINT LatINT
 -179.94  -38.05      1    128
 -179.93  -32.54      1    123
 -179.93  -32.19      1    122
 -179.93  -31.83      1    122
 -179.92  -33.97      1    124
 -179.92  -33.61      1    124

我想要的是在每个(有序)对(LonINT,LatINT)上关联一个数字以识别网格单元格。

E.g。

 LonSHIP  LatSHIP LonINT LatINT cell
 -179.94  -38.05      1    128   1
 -179.93  -32.54      1    123   2
 -179.93  -32.19      1    122   3
 -179.93  -31.83      1    122   3
 -179.92  -33.97      1    124   4
 -179.92  -33.61      1    124   4

请注意,例如

(1,2)!=(2,1),即它们必须具有两个不同的细胞数。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果您想要有序对,那么您需要先按多列排序:

dat<-dat[order(dat$LonINT,dat$LatINT,decreasing=F),]

然后您可以使用简单的公式来连接这两个值。例如,如果max(LatINT)<1000可以执行:

gridINT=dat$LonINT*1000+dat$LatINT

编辑:嗯,实际上这个公式不需要第一个订单,因为新gridINT标识符后面的排序应该给出相同的结果。