2016-03-01 32 views
-4

我有兩個數據框df1df2(見下文)出口值

df1<-structure(list(Lat = c(-89.75, -89.25, -88.75, -88.25, -87.75, 
-87.25, -86.75, -86.25, -85.75, -85.25), Long = c(-179.75, -179.25, 
-178.75, -178.25, -177.75, -177.25, -176.75, -176.25, -175.75, 
-175.25), NOy = c(3.91364542905387e-15, 3.91952637880666e-15, 
3.92540732855945e-15, 3.93128785479576e-15, 3.93716880454855e-15, 
3.93803955441832e-15, 3.93390010440509e-15, 3.92976065439186e-15, 
3.92562120437863e-15, 3.9214817543654e-15), NHx = c(1.14955574068474e-15, 
1.1571213330905e-15, 1.16468681961713e-15, 1.17225241202289e-15, 
1.17981800442865e-15, 1.18044237358989e-15, 1.17412562538574e-15, 
1.1678088771816e-15, 1.16149212897745e-15, 1.1551753807733e-15 
)), .Names = c("Lat", "Long", "NOy", "NHx"), row.names = c(NA, 
10L), class = "data.frame") 

df2<- structure(list(x = c(148.1516, 4.5206, 5.9981, -51.4500008, -125.3336, 
-125.2909, -124.9004, -82.1556, -98.4808, -98.4839), y = c(-35.6566, 
51.3092, 50.3051, -1.72000003, 49.8673, 49.8705, 49.5346, 48.2167, 
55.8796, 55.8792)), .Names = c("x", "y"), row.names = c(NA, 10L 
), class = "data.frame") 

兩個數據幀包含緯度和經度座標。我想從df1中導出值NOy和NHx,它們在某種程度上在df2的座標範圍內。輸出將是一個數據幀,其中包含df2的座標值以及從df1導出的各自的NOy和NHx值。 df3顯示了輸出的樣子。 NA值顯然應該是從df1而不是NA輸出的真實數據。

df3<- structure(list(x = c(148.1516, 4.5206, 5.9981, -51.4500008, -125.3336, 
-125.2909, -124.9004, -82.1556, -98.4808, -98.4839), y = c(-35.6566, 
51.3092, 50.3051, -1.72000003, 49.8673, 49.8705, 49.5346, 48.2167, 
55.8796, 55.8792), NOy = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA), NHx = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("x", 
"y", "NOy", "NHx"), row.names = c(NA, 10L), class = "data.frame") 

任何人都知道該怎麼做?

+2

顯示您期望從示例中得到的結果。這條線根據df2的座標不清楚。這可能意味着很多事情。請澄清。 –

+0

我將它改爲「我想從df1中導出值爲NOY和NHX的值,這些值在df2的座標內」。希望這更清楚。 – SimonB

+0

你迴避了皮埃爾實際詢問的內容。你期望輸出是什麼? – Adam

回答

0

df1最初來自一個ncdf文件,因此,我代替創建的光柵對象爲每個可變NOY和NHX這樣的:

library(raster) 
NOy_Raster <- raster("file.nc", varname="NOy_deposition") 
NHx_Raster <- raster("file.nc", varname="NHx_deposition") 

我然後萃取NOY和NHX的值與所述點在數據幀中的座標df2原樣:

df3 <- data.frame(coordinates(df2), 
        df2$x, 
        extract(NOy_Raster, df2), 
        extract(NHx_Raster, df2))