我试图从我data.table的两行中的任何一个包含NA值的行中删除行.我想利用包中的J函数来利用二进制搜索data.table.这是我尝试过的:
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
Run Code Online (Sandbox Code Playgroud)
要删除所有行x是NA我尝试:
DT[!J(NA_character_)]
Run Code Online (Sandbox Code Playgroud)
......但它仍然会返回整个data table.有没有人知道我做错了什么?非常感谢!
在所示的示例中,我会这样做:
DT <- DT[!is.na(x) & !is.na(y)]
Run Code Online (Sandbox Code Playgroud)
没有按要求使用 J() 函数,但我想无论如何都会分享这个。
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |