某有名ブランド、ポール・○ミスを彷彿とさせる装丁です。
プリン人間ではなく、バケツを頭からかぶってます。
熊が頭を抱えている姿に癒される人は多いはず!
応援よろしくです。

Rのreshape関数を使って、wide形式のデータをlong形式のデータに変換するということです。
> births.wide
caseid v012 b2_01 b2_02 b2_03 b4_01 b4_02 b4_03
1 1 30 2000 2005 NA 1 1 NA
2 2 29 2001 2010 NA 1 2 NA
3 3 32 1999 2002 2006 1 1 1
4 4 35 1999 2009 NA 2 1 NA
5 5 34 1998 NA NA 2 NA NA
6 6 23 NA NA NA NA NA NA
7 7 25 2000 NA NA 1 NA NA
>
reshape(data, varying = NULL,
timevar = "time", idvar = "id", direction, sep = "")
> births.long1 <- reshape(births.wide, varying=c("b2_01","b2_02","b2_03", "b4_01", "b4_02", "b4_03"), direction="long", idvar="caseid", sep="_")
> births.long1
caseid v012 time b2 b4
1.1 1 30 1 2000 1
2.1 2 29 1 2001 1
3.1 3 32 1 1999 1
4.1 4 35 1 1999 2
5.1 5 34 1 1998 2
6.1 6 23 1 NA NA
7.1 7 25 1 2000 1
1.2 1 30 2 2005 1
2.2 2 29 2 2010 2
3.2 3 32 2 2002 1
4.2 4 35 2 2009 1
5.2 5 34 2 NA NA
6.2 6 23 2 NA NA
7.2 7 25 2 NA NA
1.3 1 30 3 NA NA
2.3 2 29 3 NA NA
3.3 3 32 3 2006 1
4.3 4 35 3 NA NA
5.3 5 34 3 NA NA
6.3 6 23 3 NA NA
7.3 7 25 3 NA NA
>
これで、long形式に変換できていますが、被験者順で並び替えるにはorder関数を使うと上手くいきます。
> births.long2 <- reshape(births.wide, varying=c(3:8), direction="long", idvar="caseid", sep="_")
> births.long2<-births.long2[order(births.long2$caseid),]
> births.long2
caseid v012 time b2 b4
1.1 1 30 1 2000 1
1.2 1 30 2 2005 1
1.3 1 30 3 NA NA
2.1 2 29 1 2001 1
2.2 2 29 2 2010 2
2.3 2 29 3 NA NA
3.1 3 32 1 1999 1
3.2 3 32 2 2002 1
3.3 3 32 3 2006 1
4.1 4 35 1 1999 2
4.2 4 35 2 2009 1
4.3 4 35 3 NA NA
5.1 5 34 1 1998 2
5.2 5 34 2 NA NA
5.3 5 34 3 NA NA
6.1 6 23 1 NA NA
6.2 6 23 2 NA NA
6.3 6 23 3 NA NA
7.1 7 25 1 2000 1
7.2 7 25 2 NA NA
7.3 7 25 3 NA NA
names(births.long2) <- c("subject","age","order", "birthyear", "childsex")
births.long2<-na.omit(births.long2)