Как выбрать строки по двум критериям в data.table в R
Допустим, у меня есть data.table, и я хочу выбрать все строки, где переменная x имеет значение b. Это просто
library(data.table)
DT <- data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x) # set a 1-column key
DT["b"]
Кстати, кажется, что нужно установить ключ, если ключ не установлен на х, то это не работает. Кстати, что будет, если я установлю два столбца в качестве ключей?
В любом случае, двигаясь вперед, скажем, что я хочу выбрать все строки, в которых переменная x была a или b
DT["b"|"a"]
не работает
Но следующие работы
DT[x=="a"|x=="b"]
Но это использует векторное сканирование а-ля фреймы данных. Он не использует бинарный поиск. Я думаю, для небольших наборов данных это не будет иметь значения.
Это то, что я должен делать, или я не знаю синтаксиса data.table?
И еще кое-что. Есть ли примеры более сложных булевых процедур выбора переменных (или подмножества) с data.table?
Я знаю, что всегда могу вернуться к использованию функции subset (), поскольку data.table будет вести себя как data.frame, если это необходимо.