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

如何用pivot_longer将宽格式数据转为含congruency键的长格式

用pivot_longer转换带_c/_i后缀的宽格式数据

假设你的宽格式数据结构类似这样(以反应时rt、准确率acc为例):

library(tidyverse)

# 模拟原始宽数据
wide_df <- tibble(
  id = 1:3,
  rt_c = c(450, 520, 480),
  rt_i = c(610, 580, 630),
  acc_c = c(1, 1, 0),
  acc_i = c(0, 1, 1)
)

直接用pivot_longer的正则匹配功能就能实现转换,核心是通过names_pattern拆分列名的前缀和后缀:

long_df <- wide_df %>%
  pivot_longer(
    cols = -id,  # 保留id列,其余列转长格式
    names_pattern = "(.*)_(c|i)",  # 捕获前缀(如rt/acc)和后缀(c/i)
    names_to = c(".value", "congruency")  # .value对应前缀作为新列名,congruency存后缀
  )

转换结果说明

转换后的长格式数据会按id和congruency展开,保留原前缀对应的指标列:

# A tibble: 6 × 4
     id congruency    rt   acc
  <int> <chr>      <dbl> <dbl>
1     1 c            450     1
2     1 i            610     0
3     2 c            520     1
4     2 i            580     1
5     3 c            480     0
6     3 i            630     1

注意事项

  • 如果列名前缀包含下划线,需要把names_pattern调整为([^_]+)_(c|i),确保只匹配最后一个下划线后的后缀
  • 所有要转换的列必须严格遵循前缀_c/前缀_i的命名规则,否则无法被正确匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:12:13