检查间隔包含R中的数字

dpl*_*net 4 r confidence-interval

在RI中具有以下内容matrix(每行代表从相同样本数据生成的自举95%置信区间):

       low   high
[1,]   22.2  25.5
[2,]   23.1  25.9
[3,]   23.4  26.1
...
Run Code Online (Sandbox Code Playgroud)

我知道数据的真实总体平均值,它是23.3.所以前两个包括真正的意思,但第三个没有.

在R中,我想运行一个for循环i遍历nrow(matrix)时间,每个都i检查数据的真实总体均值是否在该特定区间内,然后如果区间包含真实均值则返回高度nrow(matrix)的列向量TRUE,FALSE否则.

我怎么能这样做?

Pra*_*ani 15

您可以直接在矩阵列上使用不等式运算符.所以我会简单地完成:

> cbind( mat[,1] <= 23.3 & mat[,2] >= 23.3 )

      [,1]
[1,]  TRUE
[2,]  TRUE
[3,] FALSE
Run Code Online (Sandbox Code Playgroud)

  • +1 - 而不是cbind,你也可以在`[`里面``drop = FALSE` (2认同)

42-*_*42- 7

 mat <- matrix(c(22.2,  25.5,
    23.1 , 25.9,
    23.4,  26.1), ncol=2, byrow=TRUE)
 trueval <- 23.3
 apply(mat, 1, findInterval, x=trueval)
#[1] 1 1 0
 which( apply(mat, 1, findInterval, x=trueval) == 1)
#[1] 1 2
  apply(mat, 1, findInterval, x=trueval) == 1
#[1]  TRUE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)


fde*_*sch 6

只是为了记录在案,这也可以很容易地使用实现betweendata.table包.

data.table::between(23.3, mat[, 1], mat[, 2])
## [1]  TRUE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)