which.max函數I有兩個光柵與數據如下:修改中的R
library("raster")
mdata <- raster(matrix(c(0,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE))
ndata <- raster(matrix(c(0,1,2, 11,14,13), nrow = 2, ncol = 3, byrow = TRUE))
欲堆疊起來,並估計與該標準的最大位置,如果這兩個光柵具有0值時,我應該能夠寫入0.這意味着在這種情況下輸出柵格/矩陣應該有0,1或2。
我嘗試了下面的代碼,但它並沒有完全按照我想要的方式執行。
odata <- stack(mdata, ndata)
e <- which.max(odata)
我應該如何引入檢查兩個矩陣的值是否爲0的標準,如果存在,則分配0?
我真的很感謝你對此的反饋。謝謝!
PLease定義「最大位置」,並提供輸出樣本輸出矩陣(零點,一點和二點)的示例。否則,只需設置'summat <-sum(mdata,ndata)'並檢查值爲零的值就足夠了。 –
用給定的矩陣mdata和ndata以上,which.max(odata)會給我一個矩陣(c(1,1,1,1,2,1))。 2在這種情況下指示第二光柵(即,ndata)對於[2,2]位置具有較高的值。如果兩個矩陣具有相同的值,則將輸出矩陣分配爲1,即,第一矩陣的位置。我想要得到矩陣值爲c(0,1,1,1,2,1)的結果。這基本上類似於我已經通過which.max函數獲得的結果,除了我想爲兩個矩陣分配具有0的單元格以及0不與1。 –
我試圖在逐個單元格基礎上確定位置在一組柵格中具有最大值的柵格。如果我只有兩個柵格,你的解決方案似乎工作。但是,我有27個柵格進行比較,並創建一個光柵,其中柵格的位置在27個柵格中具有最大值。所以,我試圖堆疊柵格圖層,並使用which.max函數來部分滿足我的目標。我只是無法弄清楚如何滿足條件,如果所有柵格在相同位置都有0,我需要分配0。 –