使用summary和cross from dplyr按组计算多个列的非'NA'

使用summary和cross from dplyr按组计算多个列的非'NA',r,dplyr,R,Dplyr,我想使用summary和crossfromdplyr按分组变量计算非NA值的数量。例如,使用这些数据: 库(tidyverse) d% 分组依据(ID)%>% 汇总(跨(匹配项“^Col[1-3]$”), #函数可对每个ID的每列中的非NA进行计数 )) 结果如下: #一个tible:3 x 4 ID Col1 Col2 Col3 1 1 3 2 3 2 2 2 0 2 3 3 1 1 0 我希望这

我想使用
summary
cross
from
dplyr
按分组变量计算非
NA
值的数量。例如,使用这些数据:

库(tidyverse)
d%
分组依据(ID)%>%
汇总(跨(匹配项“^Col[1-3]$”),
#函数可对每个ID的每列中的非NA进行计数
))
结果如下:

#一个tible:3 x 4
ID Col1 Col2 Col3
1     1     3     2     3
2     2     2     0     2
3     3     1     1     0

我希望这就是您想要的:

library(dplyr)

d %>%
  group_by(ID) %>%
  summarise(across(Col1:Col3, ~ sum(!is.na(.x)), .names = "non-{.col}"))

# A tibble: 3 x 4
     ID `non-Col1` `non-Col2` `non-Col3`
  <dbl>      <int>      <int>      <int>
1     1          3          2          3
2     2          2          0          2
3     3          1          1          0


我希望这就是你想要的:

library(dplyr)

d %>%
  group_by(ID) %>%
  summarise(across(Col1:Col3, ~ sum(!is.na(.x)), .names = "non-{.col}"))

# A tibble: 3 x 4
     ID `non-Col1` `non-Col2` `non-Col3`
  <dbl>      <int>      <int>      <int>
1     1          3          2          3
2     2          2          0          2
3     3          1          1          0