2016-08-16 58 views
2

由於開放式內部(不包括端點)和關閉間隔(包括端點)的定義,因此很容易理解reclassify中的right參數。但我對include.lowest的說法感到困惑。它提到include.lowest在重分類光柵包[r]中的含義

指示是否等於在RCL的最低值(在第二列中或最高 值,右= FALSE)的值應包括

在RCL中的最低值將是第一個值,根據right默認不包含,因此將include.lowest設置爲true將包含最低值。但關於「第二列最高價值」的部分,我不明白它指的是什麼。 「正確=錯誤」是什麼意思?無論如何,第二列中的最高值應該已經包含在內。

所以如果我有RCL = C(0,1,5,1,天道酬勤,10)默認情況下它意味着0> X> = 1變爲5,且x> 1變成10.如果include.lowest會發生什麼是真的? 0> = x> = 1和....?

我覺得混淆,因爲在重新分類幫助文件給出的例子表示,

所有值> = 0和< = 0.25成爲1等中號< - C(O,0.25,1, 0.25,0.5,2,0.5,1,3)

但是然後在示例中的重新分類函數不使用include.lowest,所以它不應該是所有值> = 0而是> 0。

編輯:我發現幫助頁面非常混亂,並給出答案在幫助頁面中的示例的說明是錯誤的。

回答

2

正如我在我的評論中所說的那樣,rightinclude.lowest的工作方式與R基函數cut中的完全相同。舉個簡單的例子,我將在下面使用cut,與向量1:10和破發點1,5,10

默認情況下,right = TRUE,因此,所有的時間間隔將保持開放和關閉的權利,因此,我們有兩個間隔:(1, 5],(5, 10]。注意這些一起給出另一個左開右關閉區間(1, 10],其中最低的1不包括在內。 include.lowest = TRUE將考慮[1, 10]並且做[1,5],(5,10]。比較

cut(1:10, right = TRUE, breaks = c(1, 5, 10)) 
# [1] <NA> (1,5] (1,5] (1,5] (1,5] (5,10] (5,10] (5,10] (5,10] (5,10] 
#Levels: (1,5] (5,10] 

cut(1:10, right = TRUE, breaks = c(1, 5, 10), include.lowest = TRUE) 
# [1] [1,5] [1,5] [1,5] [1,5] [1,5] (5,10] (5,10] (5,10] (5,10] (5,10] 
#Levels: [1,5] (5,10] 

現在,如果我們設置right = FALSE,所有間隔將保持關閉,右開:[1, 5)[5, 10)。在這種情況下,include.lowest = TURE本質上包含最高值。比較

cut(1:10, right = FALSE, breaks = c(1, 5, 10)) 
# [1] [1,5) [1,5) [1,5) [1,5) [5,10) [5,10) [5,10) [5,10) [5,10) <NA> 
#Levels: [1,5) [5,10) 

cut(1:10, right = FALSE, breaks = c(1, 5, 10), include.lowest = TRUE) 
# [1] [1,5) [1,5) [1,5) [1,5) [5,10] [5,10] [5,10] [5,10] [5,10] [5,10] 
#Levels: [1,5) [5,10] 

返回raster::reclassify

我覺得困惑,因爲在重分類的幫助文件中給出的例子說,

所有值> = 0和< = 0。25變成1等m <- c(0, 0.25, 1, 0.25, 0.5, 2, 0.5, 1, 3)

爲什麼?通過以上m,你有rcl矩陣:

matrix(m, ncol = 3L, byrow = TRUE, dimnames = list(NULL, c("from", "to", value))) 
#  from to value 
#[1,] 0.00 0.25  1 
#[2,] 0.25 0.50  2 
#[3,] 0.50 1.00  3 

隨着right = TRUEinclude.lowest = FALSE(默認行爲),你有

(0.00, 0,25] ---> 1 
(0.25, 0.50] ---> 2 
(0.50, 1.00] ---> 3 

right = TRUEinclude.lowest = TRUE,你有

[0.00, 0,25] ---> 1 
(0.25, 0.50] ---> 2 
(0.50, 1.00] ---> 3 
+0

右集默認爲true,不應該包含0。 「所有值> = 0」 –

+0

您必須更改答案,因爲它沒有解決與重分類幫助頁面不一致的問題。 –