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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。