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

R语言如何使用pivot_longer将宽表转为仅含value列的长表?

R tidyverse 宽表转长表解决方案

核心实现代码

library(tidyverse)

# 转换长表代码
df_result <- df %>%
  pivot_longer(
    # 筛选所有value_前缀的列,无需手动构造列名向量
    cols = starts_with("value_"),
    # 按下划线拆分原列名
    names_sep = "_",
    # 拆分后第一部分"value"直接丢弃,第二部分存为time列
    names_to = c(NA, "time"),
    # 数值存入value列,该参数为默认值可省略,写出来便于理解
    values_to = "value"
  )

说明

你之前的写法未指定列名拆分规则,pivot_longer会默认生成name列存储原列名、value列存储数值,不会自动拆分出time字段。如果你需要沿用自己构造的labels向量,只需要将cols参数替换为cols = all_of(labels)即可,其余参数保持不变就能得到预期结果。

运行上述代码后得到的结果和你要求的输出格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:24:03