如何解决在R中聚合函数以创建时间序列数据
我正在处理35个变量的数据集。我已经导出了年龄虚拟变量类别,以将患者的年龄分为不同的年龄组。现在,我想基于日期和位置变量汇总病例总数和每个年龄组中的病例数。以下是我尝试过的代码,但是我没有获得每个年龄组中病例值的总和。例如,如果总共有10例病例,则应将这10例病例分为不同的年龄段,但正在出现NA。在某些情况下,只有1个或2个年龄段的病例没有出现,这并不代表全部病例。
0 1
0 Alabama[edit] Alabama[edit]
1 Auburn Alabama[edit]
2 Florence Alabama[edit]
3 Jacksonville Alabama[edit]
4 Livingston Alabama[edit]
5 Montevallo Alabama[edit]
6 Troy Alabama[edit]
7 Tuscaloosa Alabama[edit]
8 Tuskegee Alabama[edit]
9 Alaska[edit] Alaska[edit]
10 Fairbanks Alaska[edit]
11 Arizona[edit] Arizona[edit]
12 Flagstaff Arizona[edit]
13 Tempe Arizona[edit]
...
我检查了它们都是数字的数据类型。
请建议代码有什么问题。谢谢。
解决方法
考虑aggregate
的公式样式,该样式样式可以更好地阅读,并使用data
参数避免使用众多df_sa1$
限定词。
采用公式样式时,数字列位于~
的左侧,分类变量位于对分组列的右侧。这样做还会使cbind
和list
变得不必要。
fml <- cases ~ date + location + agecat1 + agecat2 + agecat3 + agecat4 + agecat5
df_sa2 <- aggregate(fml,data=df_sa1,FUN=sum)
# TO ACCOUNT FOR POTENTIAL MISSING VALUES IN df_sa1$cases
df_sa2 <- aggregate(fml,FUN=function(x) sum(x,na.rm=TRUE),na.action=na.pass)
如果您需要单独的年龄类别分组,请相应地调整公式:
fml <- cases ~ date + location + agecat1
fml <- cases ~ date + location + agecat2
...
fml <- cases ~ date + location + agecat5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。