R 对可能包含NA/缺失值的列值的组合(非排列)进行计数

R 对可能包含NA/缺失值的列值的组合(非排列)进行计数,r,R,我有点费劲去计算在几列中发现的可能包含缺失值(NA)的值的组合 在没有NA的列中,我将执行以下操作: set.seed(42) foo 1 a b t 1 #>2 a c r 1 #>3 c d o 1 #>4dhm1 #>5 d k o 1 #>6 e q 1 #>7 e g o 1 #>8 e n t 1 #>9 h j r 1 #>10 i j q 1 但当NA在数据帧中时,此操作失败: foo2您可以将na.last=TRUE添加到apply调用中(它是sort的一个参数): foo2

我有点费劲去计算在几列中发现的可能包含缺失值(NA)的值的组合

在没有NA的列中,我将执行以下操作:

set.seed(42)
foo 1 a b t 1
#>2 a c r 1
#>3 c d o 1
#>4dhm1
#>5 d k o 1
#>6 e q 1
#>7 e g o 1
#>8 e n t 1
#>9 h j r 1
#>10 i j q 1
但当NA在数据帧中时,此操作失败:


foo2您可以将
na.last=TRUE
添加到
apply
调用中(它是
sort
的一个参数):

foo2\u排序的%dplyr::count(V1、V2、V3)
V1 V2 V3 n
1Mx1
2 c l 1
三维3
4 e l 1
5MPU1
6 p q 1
7 p r y 1
8 r 1

我们也可以使用
pmap

library(purrr)
library(dplyr)
foo2 %>%
    pmap_dfr(~ sort(c(...), na.last = TRUE)) %>% 
    dplyr::count(select(., everything()))
    # // or use
    # dplyr::count(!!! rlang::syms(names(.)))
-输出

# A tibble: 8 x 4
#  a     b     c         n
#  <chr> <chr> <chr> <int>
#1 b     m     x         1
#2 c     l     <NA>      1
#3 d     <NA>  <NA>      3
#4 e     l     <NA>      1
#5 m     p     u         1
#6 q     p     <NA>      1
#7 r     p     y         1
#8 r     <NA>  <NA>      1
#一个tible:8 x 4
#a、b、c、n
#     
#1Mx1
#2 c l 1
#三维3
#4 e l 1
#5MPU1
#6 q p 1
#7 r p y 1
#8 r 1

谢谢你,艾伦。令人惊叹的。我没有想到检查
?排序
oops:)