如何从summarise()函数生成的样本平均值列中获取最小值?
解决方法
你的代码已经成功生成了1000个样本的均值列Avg_police,直接加min()失败的原因是:在同一个summarise()里调用min()时,是按每个样本分组(即每个replicate)计算最小值,而每个分组只有一个均值,结果就是每个样本自己的均值,无法得到全局最小值。
以下是几种可行的实现方式:
方式一:先保存样本均值,再计算最小值
set.seed(1990) # 生成所有样本均值并保存 sample_means <- therm %>% rep_sample_n(size = 30, reps = 1000) %>% summarise(Avg_police = mean(ft_police, na.rm = TRUE)) # 提取列并计算最小值 min(sample_means$Avg_police)
方式二:用管道直接串联计算
set.seed(1990) therm %>% rep_sample_n(size = 30, reps = 1000) %>% summarise(Avg_police = mean(ft_police, na.rm = TRUE)) %>% pull(Avg_police) %>% # 提取Avg_police列转为向量 min() # 计算向量的最小值
方式三:用两次summarise完成计算
set.seed(1990) therm %>% rep_sample_n(size = 30, reps = 1000) %>% summarise(Avg_police = mean(ft_police, na.rm = TRUE)) %>% summarise(min_avg_police = min(Avg_police)) # 对所有样本均值计算最小值
内容的提问来源于stack exchange,提问作者Sean Cho
相关产品推荐
相关产品推荐

