如何从多组数据中选取指定两组开展t检验并绘制条形图
R代码调整及操作指引
- 前置依赖安装
首次运行前先安装所需工具包,运行以下代码:
若install.packages(c("ggpubr", "rstatix", "xlsx", "patchwork", "dplyr"))xlsx包因Java环境异常安装失败,可替换为无Java依赖的readxl包,安装命令为install.packages("readxl")。 - 核心逻辑调整说明
- 新增分组筛选:原有代码未做数据过滤,会对全部分组进行检验绘图,需在读取数据后新增筛选步骤,仅保留需要对比的两组(示例为O1和S_O5),调整对比组时直接修改
c("O1", "S_O5")内的分组名即可。 - 图形类型适配:原有代码生成的是箱线图,如需改为条形图,将
ggboxplot替换为ggbarplot即可,可通过add参数设置误差线样式。 - 指标替换:如需分析其他指标,替换代码中所有
Moisture_content为对应指标的列名即可。
- 新增分组筛选:原有代码未做数据过滤,会对全部分组进行检验绘图,需在读取数据后新增筛选步骤,仅保留需要对比的两组(示例为O1和S_O5),调整对比组时直接修改
# 加载依赖包 library(ggpubr) library(rstatix) library(xlsx) library(patchwork) library(dplyr) # 读取数据 df <- read.xlsx("umar_02.xlsx", header = T, 1) # 若使用readxl包读取,替换为以下代码: # library(readxl) # df <- read_excel("umar_02.xlsx", sheet = 1) # 筛选指定对比分组,可自行修改括号内的分组名称 df_filter <- df %>% filter(substrate %in% c("O1", "S_O5")) # 执行两组t检验并添加显著性标记 stat.test <- df_filter %>% t_test(Moisture_content ~ substrate) %>% add_significance() # 控制台输出t检验结果 stat.test # 绘制条形图(如需换回箱线图,将ggbarplot改为ggboxplot即可) plot1 <- ggbarplot(df_filter, x = "substrate", y = "Moisture_content", fill = "substrate", palette = c("#00AFBB", "#E7B800"), width = 0.35, add = "mean_se") # add参数指定添加均值±标准误误差线 # 添加显著性p值并调整画布样式 stat.test <- stat.test %>% add_xy_position(x = "substrate") plot1 + stat_pvalue_manual(stat.test, label = "p = {p}") + scale_y_continuous(expand = expansion(mult = c(0.05, 0.1)))+ theme( aspect.ratio = 3 )
注意事项:
- 需保证Excel文件
umar_02.xlsx放在R当前工作目录下,或读取时填写文件的完整绝对路径- 筛选的分组名称需要和数据中
substrate列的内容完全一致,区分大小写和特殊符号
内容的提问来源于stack exchange,提问作者Umar KHAN
相关产品推荐
相关产品推荐

