使用dplyr执行t检验时如何新增两组对应标准差sd1、sd2列
R分组两样本t检验新增两组标准差列的实现方法
依赖包
需要提前加载dplyr和broom包:
library(dplyr) library(broom)
核心实现代码
# df为你的原始数据集 stat_result <- df %>% # 按指定维度分组 group_by(external, instrument) %>% summarise( # 计算group=1的均值、标准差,自动处理缺失值 mean1 = mean(changescore[group == 1], na.rm = TRUE), sd1 = sd(changescore[group == 1], na.rm = TRUE), # 计算group=0的均值、标准差 mean2 = mean(changescore[group == 0], na.rm = TRUE), sd2 = sd(changescore[group == 0], na.rm = TRUE), # 执行两样本t检验并输出结构化结果 broom::tidy(t.test(changescore ~ group, data = cur_data())) )
问题排查说明
之前出现NA或重复值的常见原因:
- 计算标准差时未添加
na.rm = TRUE参数,数据存在缺失值时直接返回NA - 计算标准差时未按
group取值筛选子集,直接用全组的标准差重复赋值给sd1、sd2
结果使用说明
输出结果中已包含两组的均值、标准差,以及t检验的统计量、p值、置信区间等所有统计字段,可直接拼接为mean1 (sd1)、mean2 (sd2)的标准统计描述格式。
内容的提问来源于stack exchange,提问作者Cassandra
相关产品推荐
相关产品推荐

