尽管我怀疑此前并未发布过类似的问题,但我找不到任何类似的问题。我的问题与 使用dplyr计算每列NA'S的百分比 相关。
在一个数据集中,每个主题都有多个观察值,不仅计算缺失数据条目的总数(即每列的总NA数量)很有用,还要计算有多少主题存在某种缺失数据。
例如,在数据集
db
(如下所示)中,item_1
缺失了2个主题,item_2
缺失了1个主题。 编辑1:我感兴趣的是每个项目有多少主题存在(任何)缺失值。即使在
item_2
中,主题编号1有两个缺失观察值,这也应该被视为1,因为它仍然是同一主题。
library("dplyr")
db <- data.frame(
subject = c(1, 1, 1, 2),
item_1 = c(NA, 2, 3, NA),
item_2 = c(1, NA, NA, 4)
)
db
#> subject item_1 item_2
#> 1 1 NA 1
#> 2 1 2 NA
#> 3 1 3 NA
#> 4 2 NA 4
到目前为止,我的方法是将所有单个计算绑定到一个新的data.frame
中,但随着列数的增加,这很快变得混乱,并且代码编写也不好。
编辑1:然而,这显示了所需的值,因为
item_1
对于两个主题(1和2)缺失,并且item_2
只有一个主题(主题2)缺失。
cbind(
db %>%
filter(is.na(item_1)) %>%
summarise(na_item_1 = n_distinct(subject)),
db %>%
filter(is.na(item_2)) %>%
summarise(na_item_2 = n_distinct(subject))
)
#> na_item_1 na_item_2
#> 1 2 1
问题: dplyr
中是否有计算这个的方法?
理想情况下,我还想在某个地方添加缺失比例(就像下面的示例中一样):
data.frame(
type = c("n", "proportion"),
na_item_1 = c(2, 1.0),
na_item_2 = c(1, 0.5)
)
#> type na_item_1 na_item_2
#> 1 n 2.0 1.0
#> 2 proportion 1.0 0.5
此文档由 reprex package (v0.2.1) 于2019年4月16日创建。
提前致谢!
item_1
的缺失。问题已经进行了更正。 - Frederick