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

如何将data.frame两列按行合并为新数据框单列并绘制ggplot2箱线图?

R数据框宽转长与箱线图绘制方案

你可以通过宽格式转长格式的操作将原始数据框转换为目标结构,进而用ggplot2绘制单一箱线图,具体步骤如下:

原始数据与目标结构

原始数据框:

df <- data.frame(A = c("Year 1", "Year 1", "Year 2", "Year 2"), B=c(1,2,3,4), C=c(5,6,7,8))

目标数据框:

df.desired <- data.frame(A = rep(c("Year 1", "Year 1", "Year 2", "Year 2"),2), D=c(1,2,3,4,5,6,7,8))

数据转换方法

使用tidyr包的pivot_longer()函数快速完成宽转长,将B、C两列合并为单列D,同时保留A列的分组信息:

library(tidyr)
df_long <- pivot_longer(df, cols = c(B, C), names_to = NULL, values_to = "D")
  • cols = c(B, C):指定需要转换的列
  • names_to = NULL:不需要保留原列名(B/C)
  • values_to = "D":新列命名为D

转换后的df_long与df.desired完全一致。

绘制箱线图

用ggplot2基于转换后的长格式数据绘制箱线图:

library(ggplot2)
ggplot(df_long, aes(x = A, y = D)) +
  geom_boxplot()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 14:42:26