首页 > 解决方案 > 按列组合的完整案例数

问题描述

我有一个包含数百列的大型数据库,并且想知道两列的每种可能组合有多少完整的案例。

例子:

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 循环,但它变得非常麻烦。也许功能/解决方案已经存在?

标签: rdataframedata.tabledata-wrangling

解决方案


尝试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

推荐阅读