【发布时间】:2018-10-21 16:58:12
【问题描述】:
我的任务是处理从 1258 次独特调查中获得的数据。
在尺寸方面。 2800 万个个体观测值(包括 NA) -8 列(变量)。 对象名称:dat
我特别感兴趣的列/变量是教育 (edu)。我想通过聚合 (data$edu ~ id_study) 获得这些研究的 NA 和非 NA 值的长度(对于 edu)
到目前为止,我已使用此代码计算出至少包含 1 个或多个 edu 条目的研究数量。
numbers <- aggregate(dat$edu ~ dat$id_study, data=dat, FUN=length)
我得到了量化具有 edu 数据的唯一 id_study 数量所需的结果。这勾选了第一个框。
现在我需要对完全没有教育的独特 id_study 做同样的事情。我该怎么做?
我已经尝试了很多代码来计算出在 edu 上没有任何内容的研究的 NA 长度。
aggregate_2 <- aggregate(dat$edu ~ id_study, data=dat, FUN=length(dat[!is.na(dat)]))
这不起作用:(
请问有人能解释一下吗?
谢谢
编辑****** 只是为了澄清我的问题是否不清楚。有 1258 个独特的调查/研究,(有些调查可能是多年的,例如 id_study 下的 ALB_2013 和 ALB_2014)。
在这些调查中,使用公式1 代码和我在描述中输入的代码,代码1,我计算出这 1258 个调查中有 530 个在 edu 列下提供了 >=1 的个人观察。
这一定意味着 728 Unique 调查在 edu 下根本没有提供任何信息。 我想计算出 728 个调查的名称并使用一个函数,希望能计算出每次调查的 NA 长度,而这根本没有提供任何信息。
我希望这是有道理的。
id_study(调查名称)id(调查id)我感兴趣的列是“edu”。
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
我看到两件事:在 id_study 前面缺少 dat$ 并且 FUN 参数是一个函数,您可能想要改为说
FUN = (function(x) {sum(!is.na(x))}) -
@RobinGertenbach 您实际上不需要(也不应该使用)
aggregate中的任何dat$前缀,只要您提供data参数。所以aggregate(edu ~ id_study, data = dat, FUN = length)很好。 -
哦,是的,我错过了数据参数,感谢您指出这一点
-
大家好,谢谢你们的回复,请问是哪一个?
标签: r merge aggregate na data-manipulation