如何解决从在 R 中应用“聚合”中获取的计算信息
我有以下信息:
head(Callao20)
Dia Mes Aho Temp
1 12 Feb 2020 NA
2 12 Feb 2020 NA
3 12 Feb 2020 NA
4 12 Feb 2020 NA
5 12 Feb 2020 NA
6 12 Feb 2020 NA
尽管我有 NA,但我在下面还有更多信息。顺便说一句,你建议我删除这样的 NA 吗?。
无论如何,我想估算每个月的 cv,然后我每月估算以下参数:
aggregate(Callao20[,4],list(Callao20$Mes),mean)
Group.1 x
1 Feb NA
2 Mar 17.84195
3 Abr 17.50487
4 May 16.77294
5 Jun 16.45750
6 Jul 15.53369
7 Ago 14.93071
8 Set 14.65176
9 Oct 14.60224
10 Nov 14.48786
11 Dic 14.47635
...还有:
aggregate(Callao20[,sd)
Group.1 x
1 Feb NA
2 Mar 0.6280132
3 Abr 0.7163050
4 May 0.3962204
5 Jun 0.4165841
6 Jul 0.3743657
7 Ago 0.4063140
8 Set 0.3538223
9 Oct 0.6060919
10 Nov 0.5034747
11 Dic 0.3035467
知道 cv = (sd/mean)*100,你如何建议我根据我已有的估算每个月的值?
解决方法
我们可以使用 tidyverse
,因为它可以更好地处理 NA
library(dplyr)
Callao20 %>%
group_by(Mes) %>%
summarise(out = sd(Temp,na.rm = TRUE)/mean(Temp,na.rm = TRUE) * 100)
或者如果我们想使用aggregate
,我们可以使用公式方法(R 4.1.0
)
aggregate(Temp ~ Mes,Callao20,\(x) sd(x,na.rm = TRUE)/mean(x,na.rm = TRUE) * 100)
,
我建议在一个 aggregate
命令中执行此操作,而不是将其分解为单独的 aggregate
调用,然后尝试将它们组合起来。
aggregate(Callao20[,4],list(Callao20$Mes),function(x) (sd(x,na.rm = TRUE))*100)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。