正如我在我的評論中所說的那樣,right
和include.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 = TRUE
和include.lowest = FALSE
(默認行爲),你有
(0.00, 0,25] ---> 1
(0.25, 0.50] ---> 2
(0.50, 1.00] ---> 3
與right = TRUE
和include.lowest = TRUE
,你有
[0.00, 0,25] ---> 1
(0.25, 0.50] ---> 2
(0.50, 1.00] ---> 3
右集默認爲true,不應該包含0。 「所有值> = 0」 –
您必須更改答案,因爲它沒有解決與重分類幫助頁面不一致的問題。 –