相关疑难解决方法(0)

data.table不计算by中的NA组

这个问题在这里有部分答案,但问题太具体了,我无法将其应用于我自己的问题.

我想在使用时跳过NA组的潜在重量计算by.

library(data.table)

DT = data.table(X = sample(10), 
                Y = sample(10), 
                g1 = sample(letters[1:2], 10, TRUE),
                g2 = sample(letters[1:2], 10, TRUE))

set(DT, 1L, 3L, NA)
set(DT, 1L, 4L, NA)
set(DT, 6L, 3L, NA)
set(DT, 6L, 4L, NA)

DT[, mean(X*Y), by = .(g1,g2)]
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以看到最多有5个组,包括该(NA, NA)组.考虑到(i)该组是无用的(ii)这些组可能非常大并且(iii)实际计算比mean(X*Y)我能以有效方式跳过该组更复杂?我的意思是,没有创建剩余表的副本.确实以下工作.

DT2 = data.table:::na.omit.data.table(DT, cols = c("g1", "g2"))
DT2[, mean(X*Y), by = .(g1,g2)]
Run Code Online (Sandbox Code Playgroud)

grouping group-by r na data.table

7
推荐指数
1
解决办法
132
查看次数

标签 统计

data.table ×1

group-by ×1

grouping ×1

na ×1

r ×1