r - 无法理解以下 R 代码中的上限和下限
问题描述
我在最后粘贴了我遇到问题的代码。它包含 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
是 when theta
was0.9375
和lowerg1
is 22
。
定义 theta2 的更简单方法如下所示
theta2 <- theta %>% subset(theta>=t2l & theta<=t2u)
推荐阅读
- php - 添加 Serializable 接口后 unserialize() 停止工作
- java - 在 Selenium 中从文件中设置 Cookie
- docker - Docker 将间歇性故障推送到 kubernetes 上的私有 docker 注册表(docker-desktop)
- caching - GatsbyJS Service Worker 配置不尊重“networkFirst”,继续提供陈旧数据
- flutter - 如何在 Flutter 转换之间显示进度轮/进度条?
- php - CodeIgniter 表单未提交
- jquery - 如何在元素多个动作中定义变量
- python - 如何检查 Checkbutton 的值?
- c++ - (Raspberry Pi 3)如何使用 set() 函数(来自 raspicam/raspicam_cv.h)设置相机属性?
- javascript - discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?