Я использую data.table довольно много. Он работает хорошо, но я нахожу, что мне требуется много времени, чтобы перевести мой синтаксис, чтобы он воспользовался бинарным поиском.В R с использованием data.table, как исключить строки и как включить значения NA в целочисленном столбце
В следующей таблице данных, как бы 1 выбрать все строки, в том числе, где значение СРТ NA
но исключает строки, где значение СРТ 23456 или 10000.
cpt <- c(23456,23456,10000,44555,44555,NA)
description <- c("tonsillectomy","tonsillectomy in >12 year old","brain transplant","castration","orchidectomy","miscellaneous procedure")
cpt.desc <- data.table(cpt,description)
setkey(cpt.desc,cpt)
Следующая строка работает, но я думаю, он использует метод векторного сканирования вместо двоичного поиска (или двоичного исключения). Есть ли способ сбросить строки с помощью двоичных методов?
cpt.desc[!cpt %in% c(23456,10000),]
Ваш код выбирает определенные значения. Однако я пытаюсь выбрать против (или исключать или удалять) строки с определенными значениями. – Farrel
Попробуйте отредактированную версию. –
Все еще есть проблемы с вашим кодом. Когда вы настраиваете таблицу данных, вы использовали 44555 в качестве значения, но я уверен, что в последующих строках вы сделали опечатку, потому что вы использовали 45555. Кроме того, если вы хотите использовать функцию ИЛИ в команде J, вы не можете использовать 'J (сначала значение, второе значение) ', так как это будет искать первое значение в первом ключе и второе значение во втором ключе. Вместо этого вы должны использовать 'J (c (первое значение, второе значение))'. Проверьте это и посмотрите, согласны ли вы. После этого я снова посмотрю. Я заинтригован вашей техникой. – Farrel