例如爲了除去NA
行簡單地設定nomatch=0
:
下面是一個例子(I除去隨機採樣,以便每個人都可以具有相同的結果)
library(data.table)
dt = data.table(foo = 1:10, bar = letters[1:10])
setkey(dt, bar)
needed_letters = letters[c(1:8,11,12)] #1 - 8 are available, 11 and 12 are not
dt[J(needed_letters),nomatch=0]
添加從馬特
此外,如果你喜歡nomatch=0
是th Ë默認情況下,您可以更改默認:
options(datatable.nomatch=0)
dt[J(needed_letters)] # now, no NAs will be returned
您可以檢查所有的參數是這樣的:
> args(data.table:::`[.data.table`)
function (x, i, j, by, keyby,
with = TRUE,
nomatch = getOption("datatable.nomatch"),
mult = "all",
roll = FALSE,
rollends = if (roll=="nearest") c(TRUE,TRUE)
else if (roll>=0) c(FALSE, TRUE)
else c(TRUE,FALSE),
which = FALSE,
.SDcols,
verbose = getOption("datatable.verbose"),
allow.cartesian = getOption("datatable.allow.cartesian"),
drop = NULL)
的參數通過getOption
其默認因此可以有自己的默認變化。
非常感謝馬特。 – Abhi