You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言分组小提琴图添加校正P值时映射统计报错求助

解决R语言小提琴图添加校正后P值的问题

第一步:修正x轴参数拼写错误

把所有用到Gene_namee的地方改成正确的列名Gene_name,包括坐标位置设置、统计结果映射等环节,避免因列名不匹配导致的映射失败。

第二步:排查stat_pvalue_manual的映射错误

出现object 'cell.type' not found,大概率是全局映射引用了不存在的列,或者统计结果数据框结构不对,按以下方式处理:

  • 检查你的P值统计结果数据框(比如命名为p_res),确保包含Gene_name(基因分组列)、p.adj(校正后P值),以及明确比较组的列(比如group1/group2,对应control和treatment)。
  • 调用stat_pvalue_manual时,明确指定映射参数,关闭全局映射继承,示例代码:
# 基础小提琴图
base_plot <- ggplot(expr_data, aes(x = Gene_name, y = expr_value, fill = group)) +
  geom_violin() +
  geom_jitter(size = 0.8, alpha = 0.5)

# 添加校正后P值
base_plot + stat_pvalue_manual(
  data = p_res,
  aes(x = Gene_name, label = paste0("adj.p = ", round(p.adj, 3))),
  y.position = max(expr_data$expr_value) * 1.1, # 根据数据调整y轴位置
  inherit.aes = FALSE # 禁用全局映射继承,避免引用未知列
)

第三步:确保Wilcoxon检验结果格式正确

用rstatix包生成符合要求的统计结果,示例代码:

library(rstatix)
# 按基因分组,做Wilcoxon检验并校正P值
p_res <- expr_data %>%
  group_by(Gene_name) %>%
  wilcox_test(expr_value ~ group) %>%
  adjust_pvalue(method = "fdr") %>%
  mutate(label = paste0("adj.p = ", round(p.adj, 3)))

内容的提问来源于stack exchange,提问作者user20388122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:21:08