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

R语言如何将拆分为两列的分类变量合并为单个列

解决方法

你需要执行宽表转长表的操作,以下提供两种常用实现方案:

方法1:使用tidyverse的pivot_longer函数(推荐,适配后续ggplot绘图需求)

# 未安装包先执行:install.packages("tidyverse")
library(tidyverse)

data_long <- data %>%
  pivot_longer(
    cols = c(Active, Inactive),
    names_to = "Status",
    values_to = "Count"
  )

参数说明:

  • cols:指定需要合并的宽表列
  • names_to:合并后存储原列名(即Active/Inactive)的新列名,这里设置为需求的Status
  • values_to:合并后存储对应计数值的新列名,这里命名为Count

方法2:基础R实现(无需安装额外包)

data_long <- reshape(
  data,
  idvar = c("Month", "Year"),
  varying = c("Active", "Inactive"),
  v.names = "Count",
  timevar = "Status",
  times = c("Active", "Inactive"),
  direction = "long"
)
# 可选:重置行号
rownames(data_long) <- NULL

转换后的数据格式如下:

MonthYearStatusCount
Sep2021Active20
Sep2021Inactive40
Oct2021Active15
Oct2021Inactive32
Nov2021Active29
Nov2021Inactive20

得到的长表可直接用于后续的可视化操作,Status列可以直接映射为分组、颜色或分面变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:45:03