我有基于纬度和经度值的数据,我希望在较粗略的纬度和经度分辨率下聚合成一个较小的子集。
数据集:
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库函数,但找不到实现此目的的方法。
任何帮助都将不胜感激。
答案 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))