使用此数据框:
df = data.frame(mes = c(1,1,2,2,3,3), ano = c(1981, 1982,1983), x1 = c(95,8,10,NA,NA,98), x2 = c(NA, NA, 89, 48, NA, 10))
> df
mes ano x1 x2
1 1 1981 95 NA
2 1 1982 8 NA
3 2 1983 10 89
4 2 1981 NA 48
5 3 1982 NA NA
6 3 1983 98 10
我想得到这个:
mes x1_n x2_n
1 1 2 0
2 2 1 2
3 3 1 1
我的意思是,对于每个mes
唯一值,我想知道有多少非NA
值。我试图使用dplyr::count()
,但我得到了这个:
> count(df,mes)
# A tibble: 3 × 2
mes n
<dbl> <int>
1 1 2
2 2 2
3 3 2
有什么想法?感谢。
答案 0 :(得分:6)
count
为您提供观察次数。如果您对非NA的观测数量感兴趣,您可以这样做:
df %>%
group_by(mes) %>%
summarize(x1_n = sum(!is.na(x1)),
x2_n = sum(!is.na(x2)))