按列组合的完整个案数
Number of complete cases by combination of columns
我有一个包含数百列的大型数据库,我想知道两列的每种可能组合有多少个完整案例。
示例:
library(data.table)
DT <- data.table(V1 = c(NA, NA, NA, 3, 5),
V2 = c("a", "b", "c", NA, NA),
V3 = c(1, 5, NA, 4, 5),
V4 = c(NA, NA, NA, NA, NA))
# > DT
# V1 V2 V3 V4
# 1: NA a 1 NA
# 2: NA b 5 NA
# 3: NA c NA NA
# 4: 3 <NA> 4 NA
# 5: 5 <NA> 5 NA
我期望的是这样的:
对角线表示该变量的完整个案数。我想过使用某种 for 循环,但它变得非常麻烦。也许 function/solution 已经存在?
尝试 crossprod
和 is.na
> crossprod(!is.na(DT))
V1 V2 V3 V4
V1 2 0 2 0
V2 0 3 2 0
V3 2 2 4 0
V4 0 0 0 0
我有一个包含数百列的大型数据库,我想知道两列的每种可能组合有多少个完整案例。
示例:
library(data.table)
DT <- data.table(V1 = c(NA, NA, NA, 3, 5),
V2 = c("a", "b", "c", NA, NA),
V3 = c(1, 5, NA, 4, 5),
V4 = c(NA, NA, NA, NA, NA))
# > DT
# V1 V2 V3 V4
# 1: NA a 1 NA
# 2: NA b 5 NA
# 3: NA c NA NA
# 4: 3 <NA> 4 NA
# 5: 5 <NA> 5 NA
我期望的是这样的:
对角线表示该变量的完整个案数。我想过使用某种 for 循环,但它变得非常麻烦。也许 function/solution 已经存在?
尝试 crossprod
和 is.na
> crossprod(!is.na(DT))
V1 V2 V3 V4
V1 2 0 2 0
V2 0 3 2 0
V3 2 2 4 0
V4 0 0 0 0