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

如何使用函数实现DataFrame列的上下堆叠切换?

实现DataFrame两列上下合并为单列的方法

当然可以实现这个需求啦!在R里有几种简单高效的方式来完成操作,下面给你一一演示:

方法一:基础R快速合并(最直接)

直接提取两列的向量并拼接,再转换为DataFrame:

# 先创建示例数据
a <- data.frame("A" = 1:5, "B" = 2:6)
# 合并A、B列并生成新的单列DataFrame
result <- data.frame(A = c(a$A, a$B))

运行后result就是你想要的单列结构,内容依次是A列的所有值,接着是B列的所有值。

方法二:使用stack()函数

stack()函数专门用于将宽格式数据转为长格式,刚好适合这个场景:

a <- data.frame("A" = 1:5, "B" = 2:6)
# 转换后取值列,并重命名为"A"
result <- stack(a)[, 1, drop = FALSE]
names(result) <- "A"

方法三:tidyverse工具包的pivot_longer()

如果你习惯用tidyverse生态的工具,pivot_longer()会更灵活:

# 先加载tidyverse包(如果没安装先运行install.packages("tidyverse"))
library(tidyverse)

a <- data.frame("A" = 1:5, "B" = 2:6)
result <- a %>% 
  pivot_longer(
    cols = everything(),  # 选择所有列
    names_to = NULL,      # 丢弃原列名
    values_to = "A"       # 新列的名称设为"A"
  )

验证结果

运行任意一种方法后,打印result就能得到期望的输出:

print(result)
# 输出:
    A
1   1
2   2
3   3
4   4
5   5
6   2
7   3
8   4
9   5
10  6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:19:52