按组(年份和日期)计算 R 中多个列中的 NA 值

问题描述 投票:0回答:1

我想计算该系列中每个月和年的缺失值 (NA) 数量,并绘制几列的条形图。 如何从数据框中提取这些信息?

b <- read.table(text = '        Date  AAA  BBB  CCC  DDD  EEE
49 1999-12-15 24.8 21.4 25.6 35.0 17.4
50 1999-12-16   NA  0.6  1.5  6.3  2.5
51 1999-12-17   NA 16.3 20.3  NA 19.2
52 1999-12-18   13  1.6 NA  6.3  0.0
53 1999-12-19   10 36.4 12.5 26.8 24.9
54 1999-12-20   NA  0.0  0.0  0.2  0.0
55 1999-12-21  0.2  0.0  0.0  0.0  0.0
56 1999-12-22  0.0  0.0  0.0  0.0  0.0')

head(b)

谢谢你

r datetime ggplot2 bar-chart missing-data
1个回答
0
投票

您问了两个问题,但为了解决标题中的问题,您可以使用

NA
中的 AAA 到 EEE 来计算
dplyr
值(请注意数据略有变化):

b %>%
  mutate(ym = format(as.Date(Date), "%Y-%m")) %>%
  summarise(NA_count = sum(across(AAA:EEE, ~sum(is.na(.x)))),
            .by = ym)

#        ym NA_count
# 1 1999-01        3
# 2 1999-02        2
# 3 1999-03        0

注意我将您的示例数据更改为具有多个年月组:

b <- read.table(text = '        Date  AAA  BBB  CCC  DDD  EEE
49 1999-1-15 24.8 21.4 25.6 35.0 17.4
50 1999-1-16   NA  0.6  1.5  6.3  2.5
51 1999-1-17   NA 16.3 20.3  NA 19.2
52 1999-2-18   13  1.6 NA  6.3  0.0
53 1999-2-19   10 36.4 12.5 26.8 24.9
54 1999-2-20   NA  0.0  0.0  0.2  0.0
55 1999-3-21  0.2  0.0  0.0  0.0  0.0
56 1999-3-22  0.0  0.0  0.0  0.0  0.0')
© www.soinside.com 2019 - 2024. All rights reserved.