【发布时间】:2020-06-10 15:02:06
【问题描述】:
如果之前有人问过这个问题,我们深表歉意;我不太确定如何表达这个问题,这可能会阻止其他问题出现在我的搜索中。
我的情况是我有一个这样的数据集:
toy <-
data.frame(
Serves_1 = c("yes", NA, "yes", "no", "yes", "no"),
Serves_2 = c(NA, NA, "no", "no", "no", "yes"),
Serves_3 = c(NA, "no", "yes", "no", NA, "no"),
Serves_4 = c(NA, "yes", "yes", "no", "yes", "no")
)
toy
我正在尝试确定有多少行具有非 NA 的一列和所有其他列的 NA。以 Serves_1 列为例:
toy %>%
filter(
!is.na(Serves_1) &
is.na(Serves_2) &
is.na(Serves_3) &
is.na(Serves_4)
) %>%
nrow
有一行 Serves_1 具有非 NA 值,同时,所有其他列都具有该行的 NA。
此代码运行良好,但我需要对每一列重复此过程。我可以将每列的感叹号向下移动。但在我的真实数据集中,我必须对 20 多列执行此操作。
有没有更有效的方法来做到这一点(最好使用 dplyr)?
【问题讨论】: