【发布时间】:2020-08-28 19:55:59
【问题描述】:
我有一个包含多个缺失值 (NA) 的数据框,在名为 Group 的列中分为多个组 (A、B、C、D、E、F)。我正在尝试在 R 中对其进行分析。
我想将属于每个组的行/记录数制成表格,或者更好的是每个组内的行/记录的比例(即该组内的行/记录总数),它们具有:> = 1 NA(即至少 1 个缺失值),>=2 NA,>=3 NA,>=4 NA,依此类推(最多 n NA,我将预先定义)。
我想只使用基本 R 和 dplyr。我想一个解决方案将从df %>% group_by(Group) 开始,但我不确定从那里去哪里。
有什么想法吗?
编辑:让我们以虹膜作为数据:
iris0 <- iris
set.seed(101)
iris0[sample(150,40),1] <- NA
iris0[sample(150,40),2] <- NA
iris0[sample(150,40),3] <- NA
iris0[sample(150,40),4] <- NA
此时我想要(在提供max_n=7 之后)一个类似于以下的表格
1 NAs 2 NAs 3 NAs 4 NAs
1 setosa 30 13 3 0 0 0 0
2 versicolor 40 18 5 0 0 0 0
3 virginica 36 13 2 0 0 0 0
4 Total 106 44 10 0 0 0 0
5 (%) 70.67 29.33 6.67 0.00 0.00 0.00 0.00
实际上,我想出了一个使用 rowsums 和 lapply 的方法,但我想知道是否有人可以提供更有效的方法(使用 base R 和 dplyr),例如用聚合什么的。将 lapply 结果拆箱成上述表格也是一大难题。
此外,最好将数字除以每个类中的总记录(对于每个类中的比例)。
【问题讨论】:
-
请添加一个具有所需结果的可重现的小示例。 stackoverflow.com/questions/5963269/…
-
@PierreLapointe 我已经添加了一个完整的可重现示例,具有所需的结果
标签: r dplyr missing-data