基于R的散点图数据统计分析:实现单因素ANOVA及指定节点均值±SD计算
实现步骤及代码
你可以通过「连续变量分箱→分组统计描述→ANOVA检验」三步完成需求,以下代码基于你现有的df数据框编写,可直接运行:
步骤1:数据预处理(将percent_power离散化为四个节点组)
首先将连续的percent_power按你指定的四个节点切割为分组,注意如果需要保留100%的观测,要删掉你原绘图代码里的filter(percent_power < 100)过滤条件:
library(tidyverse) df_processed <- df %>% # 若需要排除100%数据则保留下面这行,否则注释 # filter(percent_power < 100) %>% mutate( # 按数值区间分箱,对应四个目标节点 power_node = cut(percent_power, breaks = c(0, 25, 50, 75, 100), labels = c("25%", "50%", "75%", "100%"), include.lowest = TRUE) )
步骤2:计算各节点relVO2的均值±标准差
# 整体计算各节点的统计量 stat_result <- df_processed %>% group_by(power_node) %>% summarise( mean_relVO2 = mean(relVO2, na.rm = T), sd_relVO2 = sd(relVO2, na.rm = T), `均值±标准差` = paste0(round(mean_relVO2, 2), "±", round(sd_relVO2, 2)) ) # 打印结果 print(stat_result) # 如果需要按你绘图中的group分组分别统计,把上面的group_by改成 group_by(power_node, group) 即可
步骤3:单因素ANOVA检验获取p值
单因素ANOVA检验四个节点的relVO2均值是否存在显著差异,结果中Pr(>F)即为你需要的p值:
# 拟合ANOVA模型 anova_fit <- aov(relVO2 ~ power_node, data = df_processed) # 查看检验结果 summary(anova_fit)
补充说明
- 如果ANOVA检验p值小于0.05,需要做事后多重比较可以直接运行
TukeyHSD(anova_fit)获取组间差异结果 - 如果需要同时控制你原数据中的
group变量的影响,可以把模型替换为双因素ANOVA:aov(relVO2 ~ power_node + group, data = df_processed)
内容的提问来源于stack exchange,提问作者MaxStudent
相关产品推荐
相关产品推荐

