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 using data.table中,当条件字段为整数时,一个子集或查询如何进行?_R_Select_Subset_Data.table - Fatal编程技术网

在R using data.table中,当条件字段为整数时,一个子集或查询如何进行?

在R using data.table中,当条件字段为整数时,一个子集或查询如何进行?,r,select,subset,data.table,R,Select,Subset,Data.table,我经常使用data.table包。有很多使用二进制搜索进行子集设置、查询或搜索(或者你想叫它什么)的例子,二进制搜索显然比矢量扫描快得多。下面是帮助文件的摘录 DT["a"] # binary search (fast) DT[x=="a"] # vector scan (slow) 但是,如果要搜索的列不是因子(或字符),而是整数,会发生什么 cpt <- c(23456,23456,10000,44555,4455

我经常使用data.table包。有很多使用二进制搜索进行子集设置、查询或搜索(或者你想叫它什么)的例子,二进制搜索显然比矢量扫描快得多。下面是帮助文件的摘录

DT["a"]                    # binary search (fast)
DT[x=="a"]                 # vector scan (slow)
但是,如果要搜索的列不是因子(或字符),而是整数,会发生什么

cpt <- c(23456,23456,10000,44555,44555)
description <- c("tonsillectomy","tonsillectomy in >12 year old","brain transplant","castration","orchidectomy")
cpt.desc <- data.table(cpt,description)

setkey(cpt.desc,cpt)
cpt.desc[10000,]  

然而,这看起来很像是一种慢速矢量扫描方法。data.table包中是否有整数的二进制搜索函数?感谢您的帮助。

请尝试
cpt.desc[J(10000)]
。添加
,“mult=all”
以获得所有匹配项。

为什么-1500,但它与10000完美配合<代码>cpt.desc[J(10000)]是魔法。谢谢,哈哈,对不起。我在自己的数据集上进行测试,这就是我要搜索的值。我将编辑以匹配您的示例:)很好。还感谢您包含关于
“mult=all”
的部分。我相信
mult=all
是默认值。因此,应该没有理由添加它。
mult='all'
是自v1.5.3以来的默认设置。我们现在在v1.7.7上。
cpt.desc[cpt==10000,]