R 如何检查数据表中每行的列值是否在另外两个范围内
我现在正在研究一个R问题,在我的最后一步中,我想检查我的95%置信区间是否包含参数的真实值。这一步我有个问题R 如何检查数据表中每行的列值是否在另外两个范围内,r,data.table,intervals,R,Data.table,Intervals,我现在正在研究一个R问题,在我的最后一步中,我想检查我的95%置信区间是否包含参数的真实值。这一步我有个问题 dat这在data.table dat[, inConf := ifelse(true >= low & true <= up,T,F)] ###alternatively with 0,1 dat[, inConf := ifelse(true >= low & true <= up,1,0)] dat[,inConf:=ifelse(tru
dat这在data.table
dat[, inConf := ifelse(true >= low & true <= up,T,F)]
###alternatively with 0,1
dat[, inConf := ifelse(true >= low & true <= up,1,0)]
dat[,inConf:=ifelse(true>=low&true=low&true最有效的方法可能是between
操作符:
> result[, conv2 := as.integer(true %between% .(low, up))]
> result
low up true conv conv2
1: 0.90 0.99 1.00 0 0
2: 1.10 1.20 1.15 1 1
3: 1.00 1.30 1.20 1 1
4: 0.95 1.40 1.50 0 0
您可以跳过as.integer
以获得逻辑列,这在R中编码此类数据时更为标准
我在这里使用的between
函数来自data.table,有两个语法:
x %between% list(dn, up)
between(x, dn, up)
在DT[…]
内部,您可以将list()缩短为()
完美。非常感谢您的帮助。我想说得更清楚一点,在data.table中,只涉及列名的命令将按行自动执行,对吗?完美。非常感谢您的帮助。请您进一步解释一下%和之间的%好吗。().命令%between%不是我在dplyr中所想的,对吗?dat[,conv2:=true%between%。(低,高)]@强超酷,很高兴它很有帮助。我不熟悉dplyr函数,但对答案做了一些解释。非常感谢您的回复。命令%between%与同样来自dplyr的%in%相似。@强超我认为该函数来自R基。如果我键入help(“%in%”),则
加载dplyr 0.7.8后,我被引导到一个帮助页面,第一行是{base},而不是{dplyr}。