我需要将重复测量的数据从宽格式重整为长格式。数据具有一个受试者ID和四个变量(W,X,Y,Z),每个变量在5个时间点(t1,t2,t3,t4,t5)测量。
ID t1.W t1.X t1.Y t1.Z t2.W t2.X t2.Y t2.Z t3.W t3.X ... and so on
A 2 4 5 3 4 5 4 4 3 2
B 3 5 3 4 5 2 3 5 1 4
C 3 4 3 5 5 4 3 4 3 2
D 4 2 4 4 5 2 3 3 4 5
.
.
我希望数据看起来如下:
ID Time W X Y Z
A t1 2 4 5 3
B t1 3 5 3 4
C t1 3 4 3 5
D t1 4 2 4 4
A t2 4 5 4 4
B t2 5 2 3 5
C ..
我首先尝试使用tidyr的new pivot_long()
函数重塑数据。另外,我已经尝试使用reshape()
函数,因为我已经找到了一个类似的问题,并将代码修改为我的数据集:
reshape(data_MA.w, idvar = "ID", direction = "long",
varying = list(c(3,7,11,15,19),c(4,8,12,16,20),
c(5,9,13,17,21),c(6,10,14,18,21)),
v.names = c("W", "X", "Y", "Z"))
我尝试了两种不同的形式,这导致了以下错误:
.rowNamesDF<-
(x,值=值)中的错误:无效的“行名”长度。
另外:警告:不建议在小标题上设置行名。
有人可以帮我吗?