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

如何用R将重复测量设计的宽格式数据转换为长格式?

重复测量宽格式转长格式(多指标)解决方案

问题背景

现有3条件重复测量数据为宽格式,包含被试ID、各条件下的3个测量指标(nombre/jugement_causal/confiance)、人口学信息等字段。需要转换为长格式:每个被试对应3行,每行对应一个条件,保留所有测量指标及不变字段,用于导入Jamovi分析。此前用gather处理单个指标可行,但多指标转换时出现重复行问题。

原始数据结构

df <- structure(list(num_pp = c(1, 2, 3, 4, 5, 6), nombre_dp1 = c(24, 
14, 2, 6, 6, 21), nombre_dp05 = c(20, 28, 2, 9, 8, 21), nombre_dp0 = c(24, 
20, 4, 11, 8, 20), jugement_causal_dp1 = c("Oui", "Oui", "Oui", 
"Oui", "Oui", "Oui"), jugement_causal_dp05 = c("Non", "Oui", 
"Non", "Non", "Oui", "Non"), jugement_causal_dp0 = c("Non", "Non", 
"Oui", "Non", "Non", "Non"), confiance_dp1 = c(90, 80, 63, 80, 
90, 80), confiance_dp05 = c(60, 50, 86, 65, 50, 90), confiance_dp0 = c(65, 
60, 55, 43, 50, 80), age = c(33, 22, 20, 20, 18, 18), genre = c("Masculin", 
"Feminin", "Feminin", "Feminin", "Feminin", "Feminin"), etude = c("L1", 
"L1", "L1", "L1", "L1", "L1"), ordre = c("dp_05|dp_1|dp_0", "dp_0|dp_1|dp_05", 
"dp_0|dp_1|dp_05", "dp_0|dp_05|dp_1", "dp_1|dp_05|dp_0", "dp_1|dp_05|dp_0"
), wdif_dp1dp05 = c(-4, 14, 0, 3, 2, 0)), row.names = c(NA, -6L
), class = c("tbl_df", "tbl", "data.frame"))

解决方案:使用tidyr::pivot_longer

pivot_longer是gather的替代函数,支持一次性处理多组重复测量变量,避免重复行问题。

步骤1:加载必要包

# 未安装则先运行:install.packages(c("tidyr", "dplyr"))
library(tidyr)
library(dplyr)

步骤2:宽转长核心代码

data_long <- df %>%
  pivot_longer(
    cols = matches("_dp[015]"), # 选中所有带条件后缀的测量变量
    names_to = c(".value", "condition"), # .value保留原指标名,condition存条件标签
    names_pattern = "(.*)_(dp.*)" # 正则拆分变量名:指标名 + 条件后缀
  )

代码解释

  • cols = matches("_dp[015]"):自动匹配所有变量名含_dp0/_dp1/_dp05的列,无需手动逐个列名输入
  • names_to = c(".value", "condition"):特殊参数.value表示将变量名的第一部分(如nombre)作为新列名,第二部分(如dp1)存入condition列
  • names_pattern = "(.*)_(dp.*)":正则表达式拆分变量名,比如jugement_causal_dp05会被拆分为jugement_causal(指标)和dp05(条件)

转换后结果

每个被试(num_pp)对应3行,每行对应一个条件,包含nombre/jugement_causal/confiance三个测量指标,以及age/genre等不变字段,完全适配Jamovi的重复测量分析要求。

查看前6行示例:

head(data_long)

输出示例:

# A tibble: 6 × 9
  num_pp   age genre    etude ordre               wdif_dp1dp05 condition nombre jugement_causal confiance
   <dbl> <dbl> <chr>    <chr> <chr>                      <dbl> <chr>      <dbl> <chr>             <dbl>
1      1    33 Masculin L1    dp_05|dp_1|dp_0              -4 dp1           24 Oui                  90
2      1    33 Masculin L1    dp_05|dp_1|dp_0              -4 dp05          20 Non                  60
3      1    33 Masculin L1    dp_05|dp_1|dp_0              -4 dp0           24 Non                  65
4      2    22 Feminin  L1    dp_0|dp_1|dp_05              14 dp1           14 Oui                  80
5      2    22 Feminin  L1    dp_0|dp_1|dp_05              14 dp05          28 Oui                  50
6      2    22 Feminin  L1    dp_0|dp_1|dp_05              14 dp0           20 Non                  60

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:04:57