列表中df中列的特定值的NA的总和

时间:2017-01-22 20:18:33

标签: r

我需要在数据框列表中获得每月NA的总和 该列表包含许多长度不同的数据框,如下所示:

                 date year month day hour rain temp rhum
1 1950-01-01 01:00:00 1950     1   1    1    0  5.1   93
2 1950-01-01 02:00:00 1950     1   1    2    0  6.1   91
3 1950-01-01 03:00:00 1950     1   1    3    0  6.0   92
4 1950-01-01 04:00:00 1950     1   1    4    0  6.1   92
5 1950-01-01 05:00:00 1950     1   1    5    0  6.6   92
6 1950-01-01 06:00:00 1950     1   1    6    0  7.2   92

输出应该是相同数量的数据框列表,每个变量的摘要行:

   year month  rain temp rhum
1  1950     1     2    3    1
2  1950     1     0    0    3

这段代码给出了每列每列的总和:

lapply(all_st, function(x) sapply(x, function(z) sum(is.na(z))))

1 个答案:

答案 0 :(得分:1)

我们可以使用data.table。在循环遍历按“年”,“月”分组的data.frames列表后,将'data.frame'转换为'data.table'(setDT(x)),指定{{1}中感兴趣的列},遍历这些列并获取NA元素的逻辑向量的.SDcols

sum