Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何检查数据表中每行的列值是否在另外两个范围内_R_Data.table_Intervals - Fatal编程技术网

R 如何检查数据表中每行的列值是否在另外两个范围内

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

我现在正在研究一个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(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}。