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

如何用R绘制矩阵单一行数据并按元数据分组的箱线图

错误原因

你之前的代码报错是因为使用公式语法时指定了data参数为logcpm["K11040",],R会优先在这个传入的单行矩阵中查找公式里的变量,自然找不到元数据中的PEDIS列,因此运行失败。

解决方法

前提确认

首先必须保证logcpm矩阵的列顺序和元数据pd_2的样本顺序完全一一对应,如果不确定可以先执行以下代码做匹配校正:

# 按样本ID对齐顺序,避免分组错配
pd_2 <- pd_2[match(colnames(logcpm), pd_2$Sample), ]

基础R boxplot 实现

不需要指定data参数,直接传入两个等长且顺序对应的向量即可:

target_gene <- logcpm["K11040", ]
boxplot(target_gene ~ pd_2$PEDIS, ylab="LogCPM", xlab="PEDIS Group")

更稳妥的写法是先合并为独立的绘图数据框,方便核对对应关系:

plot_df <- data.frame(
  logcpm = logcpm["K11040", ],
  PEDIS = pd_2$PEDIS
)
boxplot(logcpm ~ PEDIS, data = plot_df, ylab="LogCPM", xlab="PEDIS Group")

ggplot2 实现(可选)

如果习惯用ggplot2绘图,代码如下:

library(ggplot2)
ggplot(plot_df, aes(x = PEDIS, y = logcpm)) +
  geom_boxplot(fill = "lightgrey") +
  labs(x = "PEDIS Group", y = "LogCPM") +
  theme_classic()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:42:03