如何在 R 中通过 group/factor 计算 NA 值的长度?

How to count length of NA values by group/factor in R?

我的任务是处理从 1258 次独特调查中获得的数据。

在尺寸方面。 2800 万个人观察(包括 NA) -8 列(变量)。 对象名称:dat

我特别感兴趣的column/variable是教育(edu)。我想通过汇总 (data$edu ~ id_study)

到目前为止,我已经使用此代码计算出至少包含 1 个或多个 edu 条目的研究数量。

numbers <- aggregate(dat$edu ~ dat$id_study, data=dat, FUN=length)

我得到了量化在 edu 上有数据的唯一 id_study 数量所需的结果。这符合方框一。

现在我需要为完全没有教育背景的独特 id_study 做同样的事情。我该怎么做?

我已经尝试了很多代码来计算 NA 的长度,用于在 edu 上没有任何内容的研究。

aggregate_2 <- aggregate(dat$edu ~ id_study, data=dat, FUN=length(dat[!is.na(dat)]))

这不起作用:(

任何人都可以解释一下这个问题吗?

谢谢

编辑 ****** 只是为了澄清我的问题是否不清楚。有 1258 个独特的 surveys/studies,(有些调查可能会持续多年,例如 id_study 下的 ALB_2013 和 ALB_2014。

在这些调查中,使用等式 1 code and the code i put in the description, code 1,我计算出这 1258 份调查中有 530 份在 edu 栏下提供了 >=1 个人观察。

这一定意味着 728 Unique surveys 在 edu 下根本没有提供任何信息。 我想计算出 728 项调查的名称并使用一个函数,希望计算出每项调查的 NA 长度,但根本没有提供任何信息。

我希望这是有道理的。

id_study(调查名称)id(调查 ID)我感兴趣的列是 "edu"。

首先:发布数据的屏幕截图是不好的做法,因为这需要 SO 受访者手动输入样本数据。使用 dput 到 post(部分)数据。对于以后的问题,请遵循 Sotos 第一条评论中的建议和链接!

除此之外,以下内容如何:

numbers <- aggregate(
    edu ~ id_study, 
    data = dat, 
    FUN = function(x) c(n_nonNA = sum(!is.na(x)), n_NA = sum(is.na(x))))