findInterval
位於 base
包(package)。 說明
給定 vec
中的非遞減斷點向量,找到包含 x
的每個元素的區間;即,如果 i <- findInterval(x,v)
,對於 x
中的每個索引 j
,其中 、 和 N <- length(v)
。在兩個邊界處,返回的索引可能相差 1,具體取決於可選參數 rightmost.closed
和 all.inside
。
用法
findInterval(x, vec, rightmost.closed = FALSE, all.inside = FALSE,
left.open = FALSE)
參數
x |
數字。 |
vec |
數字,逐漸(弱)排序,長度為 |
rightmost.closed |
邏輯性;如果為 true,則最右邊的區間 |
all.inside |
邏輯性;如果為 true,則返回的索引被強製轉換為 |
left.open |
邏輯性;如果為 true,則所有區間都在左側打開並在右側關閉;在下麵的公式中, |
細節
函數 findInterval
查找一個向量 x
在另一個向量 vec
中的索引,其中後者必須是非遞減的。這是微不足道的,相當於 apply( outer(x, vec, `>=`), 1, sum)
,事實上,內部算法使用區間搜索確保 複雜性,其中 n <- length(x)
(和 N <- length(vec)
)。對於(幾乎)排序的 x
,它會更快,本質上是 。
這與經驗分布函數的計算相同,實際上, findInterval(t, sort(X))
與 相同,其中 是 的經驗分布函數。
當 rightmost.closed = TRUE
時,x[j] = vec[N]
( ) 的結果是 N - 1
,就像最後一個間隔中的所有其他值一樣。
left.open = TRUE
有時有用,例如對於生存數據。出於(反)對稱原因,它相當於使用 “mirrored” 數據,即以下內容始終為真:
identical( findInterval( x, v, left.open= TRUE, ...) , N - findInterval(-x, -v[N:1], left.open=FALSE, ...) )
其中 N <- length(vec)
如上所述。
值
長度為 length(x)
的向量,其值在 0:N
(和 NA
)中,其中 N <- length(vec)
,或者當且僅當 all.inside = TRUE
時強製轉換為 1:(N-1)
的值(等效於強製強製間隔內的所有 x 值)。請注意, NA
是從 x
傳播的,並且 Inf
值在 x
和 vec
中都允許。
例子
x <- 2:18
v <- c(5, 10, 15) # create two bins [5,10) and [10,15)
cbind(x, findInterval(x, v))
N <- 100
X <- sort(round(stats::rt(N, df = 2), 2))
tt <- c(-100, seq(-2, 2, length.out = 201), +100)
it <- findInterval(tt, X)
tt[it < 1 | it >= N] # only first and last are outside range(X)
## 'left.open = TRUE' means "mirroring" :
N <- length(v)
stopifnot(identical(
findInterval( x, v, left.open=TRUE) ,
N - findInterval(-x, -v[N:1])))
作者
Martin Maechler
也可以看看
approx(*, method = "constant")
是 findInterval()
和 ecdf
的泛化,用於計算經驗分布函數(最多 因子)也與 findInterval(.)
基本相同。
相關用法
- R find.package 查找套餐
- R file.path 構造文件路徑
- R file.info 提取文件信息
- R file.show 顯示一個或多個文本文件
- R file.access 確定文件的可訪問性
- R files 文件操作
- R file.choose 交互式選擇文件
- R files2 目錄和文件權限的操作
- R formals 訪問和操縱形式參數
- R funprog 函數式編程語言中常見的高階函數
- R formatDL 格式說明列表
- R force 強製評估論證
- R format 以通用格式編碼
- R factor 因子
- R function 函數定義
- R formatC 使用 C 樣式格式進行格式化
- R format.pval 設置 P 值格式
- R forceAndCall 調用帶有強製參數的函數
- R format.info 格式(.)信息
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Find Interval Numbers or Indices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。