簡體   English   中英

基於二進制搜索的data.table中NA值的子集

[英]Binary search based subset on NA values in data.table

我試圖從我的data.table中刪除行,其中兩列中的任何一列包含NA值。 我想利用data.table包中的J函數來利用二進制搜索。 這是我嘗試過的:

DT = data.table(x=rep(c("a","b",NA),each=10), y=c(1,3,6))
setkey(DT,x)
DT
     x y
 1: NA 6
 2: NA 1
 3: NA 3
 4: NA 6
 5: NA 1
 6: NA 3
 7: NA 6
 8: NA 1
 9: NA 3
10: NA 6
11:  a 1
12:  a 3
13:  a 6
14:  a 1
15:  a 3
16:  a 6
17:  a 1
18:  a 3
19:  a 6
20:  a 1
21:  b 3
22:  b 6
23:  b 1
24:  b 3
25:  b 6
26:  b 1
27:  b 3
28:  b 6
29:  b 1
30:  b 3
     x y

要刪除xNA所有行,我嘗試過:

DT[!J(NA_character_)]

...但它仍然返回整個data table 有沒有人知道我做錯了什么? 非常感謝!

在如圖所示的示例中,我會這樣做:

DT <- DT[!is.na(x) & !is.na(y)]

不按要求使用J()函數,但我想我會分享這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM