Я использую пакет 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,]
Это не работает, потому что целое число 10000 интерпретируется как 10000-ая строка, которой в этом data.table не существует.
Если мы изменим синтаксис, то получим то, что ищем.
cpt.desc[cpt==10000,]
Однако это выглядит так, как будто это метод медленного векторного сканирования.Есть ли функция двоичного поиска для целых чисел в пакете data.table?Благодарю вас в ожидании вашей помощи.