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

R语言如何使用pivot_longer拆分列将股票宽表转为目标长表格式

你可以通过names_sep和names_to两个核心参数实现需求,完整代码如下:

library(tidyr)

result <- data %>%
  pivot_longer(
    cols = -Date,
    names_to = c("Ticker", ".value"),
    names_sep = "x"
  )

参数说明

  • cols = -Date:指定除日期列外的所有列参与透视,不需要手动指定列名范围,后续新增其他股票代码的列也能自动适配
  • names_to = c("Ticker", ".value"):将原列名拆分后的两部分分别分配用途:第一部分作为新的Ticker列的取值,第二部分作为数值列的列名。其中.value是pivot_longer的专用标记,它会将拆分出的对应内容直接作为输出表的列名,对应列的数值直接填充,无需额外二次转换就能实现同一股票、同一日期的开盘/收盘价放在同一行
  • names_sep = "x":指定原列名按照字符x拆分,刚好可以把ENRSxOPEN拆为ENRS和OPEN两部分

运行上述代码后输出的结果和你需要的目标格式完全一致:

# A tibble: 6 × 4
  Date       Ticker  OPEN CLOSE
  <chr>      <chr>  <dbl> <dbl>
1 1989-09-11 ENRS    83.0  82.1
2 1989-09-11 INFT    72.9  72.6
3 1989-09-12 ENRS    83.8  84.0
4 1989-09-12 INFT    73.5  72.5
5 1989-09-13 ENRS    83.2  83.9
6 1989-09-13 INFT    72.9  72.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:10