r语言 - 数据中的 NA/NaN/Inf.表 1.9.2.



在检查了data.table 1.9.2的新功能后,我不太清楚NA/NaN/Inf操作的新功能。

新闻:

NA、NaN、+Inf 和 -Inf 现在被认为是不同的值,可以在键中,可以联接,也可以分组。 data.table 定义: NA <-Inf>

我不知道"可以加入并且可以分组"是什么意思

DT <- data.table(A=c(NA,NA,1:3), B=c("a",NA,letters[1:3]))

现在我们在 A 列和 B 列中都有 NA,

但是我有点迷茫如何进行,以及这个新功能的目的是什么。你能举个例子来说明这一点吗?

多谢!

在以前版本的data.table NA, NaN,Inf中,键中可能存在值,但您无法join或使用二进制扫描以与其他键值一致的方式选择这些行。

看在 R 中的 data.table 中选择 NA 和 NaN 的 data.table 子集不适用于处理这些问题的 SO 问题的示例(您可以通过 data.table 项目中功能请求的答案来跟踪历史记录)

现在,在 1.9.2(及更高版本)中,这样的事情将起作用。

# an example data set
DT <- data.table(A = c(NA,NaN,Inf,Inf,-Inf,NA,NaN,1,2,3), 
              B =letters[1:10], key = 'A')
# selection using binary search
DT[.(Inf)]
#     A B
# 1: Inf c
# 2: Inf d
DT[.(-Inf)]
#       A B
# 1: -Inf e
# note that you need to use the right kind of NA
DT[.(NA_real_)]
#     A B
# 1: NA a
# 2: NA f
DT[.(NaN)]
#      A B
# 1: NaN b
# 2: NaN g
# grouping works
DT[,.N,by=A]
#       A N
# 1:   NA 2
# 2:  NaN 2
# 3: -Inf 1
# 4:    1 1
# 5:    2 1
# 6:    3 1
# 7:  Inf 2

最新更新