【发布时间】:2014-09-25 17:45:38
【问题描述】:
我有一个数据表
dt <- data.table(c(1,2,3,4),c("chr1","chr1","chr2","chr3"),c(12,12,13,14))
这只是一个示例数据框,但实际上我有数百万行和三列。 我需要找出其中是否存在一组值。 例如,我想检查第2列中的“chr1”和列中的“2”是否同时存在?
我正在使用"chr1" %in% dt$V2,但不知道如何结合两个价值标准并使其快速处理数百万行。
【问题讨论】:
-
可能是
dt[, V1==2 & V2=='chr1']#[1] FALSE TRUE FALSE FALSE -
我需要更快的搜索,因为有数百万行,搜索大约需要 4 秒。
-
对于单值比较,
==应该比%in%快。我不确定将两列粘贴在一起并进行比较是否会更快。 -
我有 setkeys(dt,"V1","V2")。但不知道如何使用它来提高速度
-
@user1631306
dt[J(2, 'chr1')]
标签: r data.table