在 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

要创建此条形图,有多种方法。基础 R 中的一种方法是(不是我将上述数据保存为

plotdat
:

barplot(plotdat$NA_count, 
        names.arg = plotdat$ym)

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

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.