我需要在数据框列表中获得每月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))))
答案 0 :(得分:1)
我们可以使用data.table
。在循环遍历按“年”,“月”分组的data.frames列表后,将'data.frame'转换为'data.table'(setDT(x)
),指定{{1}中感兴趣的列},遍历这些列并获取NA元素的逻辑向量的.SDcols
sum