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

重复测量/混合模型所用宽格式数据转长格式实现方法咨询

实现方案

方案1:使用tidyverse生态的pivot_longer(推荐,代码更简洁易读)

首先加载tidyverse包:

library(tidyverse)

执行转换:

dat_long <- dat %>%
  pivot_longer(
    cols = -Participant, # 排除Participant列,其余所有列均参与长表转换
    names_to = "Item", # 将原宽表的列名存储为新的Item列
    values_to = "Accuracy" # 将原宽表的单元格数值存储为新的Accuracy列
  )

转换后的dat_long完全符合你给出的长表结构,可直接传入lme4、lmerTest等包进行混合模型拟合。

方案2:使用R内置函数reshape(无需安装第三方包)

如果你不想额外安装包,可使用基础R自带的reshape函数实现:

dat_long <- reshape(
  dat,
  varying = c("Banana", "Apple", "Orange"), # 指定需要转换的宽表列
  v.names = "Accuracy", # 指定数值列的名称
  timevar = "Item", # 指定存储原列名的列名称
  times = c("Banana", "Apple", "Orange"), # 指定Item列的取值
  idvar = "Participant", # 指定作为唯一标识的ID列
  direction = "long"
)
# 可选操作:重置转换后自动生成的行号
row.names(dat_long) <- NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:04