gpt4 book ai didi

r - 过滤 data.table 为 !is.na()

转载 作者:行者123 更新时间:2023-12-04 10:31:20 25 4
gpt4 key购买 nike

据我所知,应该避免使用“&”和“|”在 i 中避免矢量扫描。所以:

data<-data.table(a=c(NA, 1, 2), b=c(1, 2, 1), key="a,b")
data[is.na(a) & b==1]

应该替换为
data[.(NA_integer_, 1)]

但是:当我对所有非 NA 条目感兴趣时,我该怎么做?可以使用以下内容还是使用较慢的矢量扫描?
data[!is.na(a) & b==1]

因为这样的事情似乎不起作用
data[.(!NA_integer_, 1)]

最佳答案

不幸的是,目前在基于二分搜索的子集中不可能有您需要的形式的表达式......即,我们不能否定单个键列。

目前执行基于二进制搜索的子集的方法是:

require(data.table) ## v1.9.5+
a_val = setdiff(unique(data$a), NA)
setkey(data)[.(a_val, 1), nomatch=0L]
# a b
# 1: 2 1

可能有一个函数会很好,例如, not()except()这将允许我们在内部提取值...小心提交 FR here ?

关于r - 过滤 data.table 为 !is.na(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com