无法理解以下 R 代码中的上限和下限

Having trouble understanding the upper bound and lower bound in the following R code

我在最后粘贴了我遇到问题的代码。它包含 R 命令行,用于显示观察到的第 1 组能力分数水平的正确响应比例。 第 1 组能力的下限由 t1l 指定,这意味着 theta-1-lower;第 1 组能力的上限用 t1u 指定,这意味着 theta-1-upper: 在这段代码之前还有一段代码定义了 theta 如下:

theta <- seq(-3, 3, .1875)
f <- rep(21, length(theta))

然后提到这段代码。我的理解是这段代码在 2 个边界之间找到一些值。但是觉得如果我想找到 1 到 3 之间的东西,那么我应该编写一个代码,说明我想找到小于 3 和大于 1 的值。 然而,此代码针对下限执行此操作

theta[g] <= t2l) { lowerg1 <- lowerg1 + 1 }

这意味着它找到小于 1 的值?小于 1 的值类似于 0 、-1 -2 等,我们想在 1 和 3 之间找到值。我觉得我们应该改为说 theta[g] >= t2l) 这样我就可以找到大于 1 的值所以我可以找到 2 之类的值,它介于 3 和 1 之间 它对上限做同样的事情。但这会找到 3 以下的所有值,而不仅仅是 3 和 1

theta[g] <= t2u) 

这就是我想象即将发生的事情的方式 https://i.stack.imgur.com/uPiiS.png 这就是我觉得事情应该是这样的 https://i.stack.imgur.com/Jyly1.png

t2l <- 1
t2u <- 3
lowerg1 <- 0
for (g in 1:length(theta)) {
if (theta[g] <= t2l) { lowerg1 <- lowerg1 + 1 }
}
upperg1 <- 0
for (g in 1:length(theta)) {
if (theta[g] <= t2u) { upperg1 <- upperg1 + 1 }
}
theta2 <- theta[lowerg1:upperg1]
p2 <- p[lowerg1:upperg1]
if (mdl == 1) { maintext <- paste("Group 2", "\n") }
if (mdl == 2) { maintext <- paste("Group 2", "\n") }
if (mdl == 3) { maintext <- paste("Group 2", "\n") }
plot(theta2, p2, xlim=c(-3,3), ylim=c(0,1),
xlab="Ability", ylab="Probability of Correct Response",
main=maintext)

您下面的代码完全符合预期

t2l <- 1
t2u <- 3
lowerg1 <- 0
for (g in 1:length(theta)) {
  if (theta[g] <= t2l) { lowerg1 <- lowerg1 + 1 }
}
upperg1 <- 0
for (g in 1:length(theta)) {
  if (theta[g] <= t2u) { upperg1 <- upperg1 + 1 }
}
theta2 <- theta[lowerg1:upperg1]

上次 theta[g] <= t2l 是在 theta0.9375 并且 lowerg122 的时候。

定义 theta2 的更简单方法如下所示

theta2 <- theta %>% subset(theta>=t2l & theta<=t2u)