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

如何将R语言中含MEAN/MED后缀的数据集重塑为指定长格式

R数据格式转换解决方案

原始数据

df <- data.frame(Group = c("a", "b"), 
                 MEAN_A = 1:2, 
                 MEAN_B = 3:4, 
                 MED_A = 5:6, 
                 MED_B = 7:8)

转换代码

使用tidyr包的pivot_longer函数,通过正则表达式拆分列名并重组结构:

library(tidyr)
library(dplyr)

result <- df %>%
  pivot_longer(
    cols = -Group,  # 保留Group列,处理其余所有列
    names_to = c("Name", ".value"),  # 拆分列名为类别列(Name)和值列标识
    names_pattern = "(.*)_(.*)"  # 正则匹配下划线前后的两部分内容
  ) %>%
  rename(Value_A = A, Value_B = B)  # 重命名列名以匹配需求格式

输出结果

print(result)
#   Group Name Value_A Value_B
# 1     a MEAN       1       3
# 2     a  MED       5       7
# 3     b MEAN       2       4
# 4     b  MED       6       8

关键参数说明

  • names_to = c("Name", ".value"):.value是特殊占位符,代表拆分出的第二部分作为新值列的名称,而非存入普通数据列
  • names_pattern = "(.*)_(.*)":用括号捕获下划线分隔的两段内容,第一段对应Name列的MEAN/MED类别,第二段对应值列的A/B标识

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:39