使用R对经度和经度进行平均数据

时间:2013-11-26 16:44:35

标签: r

我有基于纬度和经度值的数据,我希望在较粗略的纬度和经度分辨率下聚合成一个较小的子集。

数据集:

Latitude Longitude  Total.MB
 23.0     -180       57.901667
 23.5     -180       11.058667
 24.0     -180        1.176667
 24.5     -180       12.726500
 25.0     -180        9.101500
 29.5     -180       46.250668

想要将纬度和经度“网格”定义为5deg-by-5deg正方形,并获得每个正方形的Total.MB总和。
这就是新数据框的样子:

Latitude Longitude  Total.MB
 20.0     -180       100.041667
 25.0     -180        15.058667
 30.0     -180        16.176667
 20.0     -175       128.726500
 25.0     -175       498.101500
 30.0     -175       146.250668

我尝试了解聚合函数和plyr库函数,但找不到实现此目的的方法。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设我理解你的问题,这是一个可能的解决方案:

df<-data.frame(Lattitude=c(23, 23.5, 24, 24.5,25,29.5), 
               Longitude=c(-180, -180, -180, -175, -175, -175), 
               Total.MB=c(57.9, 11.1, 1.18, 12.7, 9.1, 46.3))
ddply(df, ~(round(Lattitude / 5)*5)+(round(Longitude / 5)*5), 
          summarize, Total.MB=sum(Total.MB))