R 获取计数位于列中的组的标准偏差
我希望得到的标准偏差按年份分组。我看到的所有示例都不涉及聚合计数列 我想使用count列的总和作为标准偏差计算的一部分R 获取计数位于列中的组的标准偏差,r,dplyr,R,Dplyr,我希望得到的标准偏差按年份分组。我看到的所有示例都不涉及聚合计数列 我想使用count列的总和作为标准偏差计算的一部分 year count age 2018 2 0 2018 3 1 2018 4 2 2017 1 0 2017 4 1 2017 2 2 上述问题的预期答案是:- 2018年=0.78567420131839 2017年=0.63887656499994以下应该可以做到这一点 library(dplyr) libr
year count age
2018 2 0
2018 3 1
2018 4 2
2017 1 0
2017 4 1
2017 2 2
上述问题的预期答案是:-
2018年=0.78567420131839
2017年=0.63887656499994以下应该可以做到这一点
library(dplyr)
library(purrr)
data <- tibble(year = c(2018, 2018, 2018, 2017, 2017, 2017),
count = c(2, 3, 4, 1, 4, 2),
age = c(0, 1, 2, 0, 1, 2))
data %>%
mutate(vec = map2(age, count, ~ rep(.x, .y))) %>%
group_by(year) %>%
mutate(concs = list(unlist(vec))) %>%
ungroup() %>%
mutate(age_sd = map_dbl(concs, sd)) %>%
select(-vec, -concs)
# year count age age_sd
# <dbl> <dbl> <dbl> <dbl>
# 1 2018 2 0 0.833
# 2 2018 3 1 0.833
# 3 2018 4 2 0.833
# 4 2017 1 0 0.690
# 5 2017 4 1 0.690
# 6 2017 2 2 0.690
库(dplyr)
图书馆(purrr)
数据%
变异(vec=map2(年龄、计数、~rep(.x、.y)))%>%
组别(年份)%>%
突变(concs=list(unlist(vec)))%>%
解组()%>%
突变(年龄sd=map dbl(浓度sd))%>%
选择(-vec,-concs)
#年数年龄
#
# 1 2018 2 0 0.833
# 2 2018 3 1 0.833
# 3 2018 4 2 0.833
# 4 2017 1 0 0.690
# 5 2017 4 1 0.690
# 6 2017 2 2 0.690
您如何获得2018年的0.78567
?你能解释一下计算结果吗?@RonakShah OP使用的是最大似然估计,而不是R标准皮尔逊矩估计。为了得到2018年的答案,我只是将这些值扩展到0,0,1,1,2,2,2,2,然后将这些值插入我看到,当我从一个总体到另一个样本时,我得到了与@rjenHi相同的答案,看起来就是这样,当我以样本模式而不是总体模式将值插入在线计算器时,我得到了相同的答案。