-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathAnalyse BMI change by measurement count
147 lines (120 loc) · 8.18 KB
/
Analyse BMI change by measurement count
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#DRAW IN BMI THRESHOLD TO WORK OUT CENTILES FOR OVERWEIGHT, OBESE, SEVERELY OBESE
champ2$weightcat<-1#normal
champ2$weightcat<-ifelse(champ2$Centile_BMI>=90.879,2,champ2$weightcat)#overweight
champ2$weightcat<-ifelse(champ2$Centile_BMI>=97.725,3,champ2$weightcat)#obese
champ2$weightcat<-ifelse(champ2$Centile_BMI<2.275,4,champ2$weightcat)#underweight
champ2$weightcat<-ifelse(champ2$Centile_BMI>=99.913,5,champ2$weightcat)#morbid
champ2$weightcat<-ifelse(champ2$Centile_BMI<0.383,6,champ2$weightcat)#very underweight
table(champ2$weightcat)
alldata<-champ2
attach(alldata)
#Assign class at test vector
alldata$Recordr<-as.numeric(ifelse(class==0,1,0))
alldata$Record1<-as.numeric(ifelse(class==1,1,0))
alldata$Record2<-as.numeric(ifelse(class==2,1,0))
alldata$Record3<-as.numeric(ifelse(class==3,1,0))
alldata$Record4<-as.numeric(ifelse(class==4,1,0))
alldata$Record5<-as.numeric(ifelse(class==5,1,0))
alldata$Record6<-as.numeric(ifelse(class==6,1,0))
#Print BMI at each test
alldata$BMIr<-as.numeric(ifelse(class==0,BMI,NA))
alldata$BMI1<-as.numeric(ifelse(class==1,BMI,NA))
alldata$BMI2<-as.numeric(ifelse(class==2,BMI,NA))
alldata$BMI3<-as.numeric(ifelse(class==3,BMI,NA))
alldata$BMI4<-as.numeric(ifelse(class==4,BMI,NA))
alldata$BMI5<-as.numeric(ifelse(class==5,BMI,NA))
alldata$BMI6<-as.numeric(ifelse(class==6,BMI,NA))
#Print weightcat at each age
alldata$weightcatr<-as.numeric(ifelse(class==0,weightcat,NA))
alldata$weightcat1<-as.numeric(ifelse(class==1,weightcat,NA))
alldata$weightcat2<-as.numeric(ifelse(class==2,weightcat,NA))
alldata$weightcat3<-as.numeric(ifelse(class==3,weightcat,NA))
alldata$weightcat4<-as.numeric(ifelse(class==4,weightcat,NA))
alldata$weightcat5<-as.numeric(ifelse(class==5,weightcat,NA))
alldata$weightcat6<-as.numeric(ifelse(class==6,weightcat,NA))
attach(alldata)
#Determine how many measurements taken per child
alldata$NoRecords<-(Recordr+Record1+Record2+Record3+Record4+Record5+Record6)
Recs<-aggregate(alldata$NoRecords, by=list(Category=ChildID), FUN=sum)
names(Recs)[names(Recs)=="x"] <- "NoRecs"
names(Recs)[names(Recs)=="Category"] <- "ChildID"
#Merge to have BMI at different ages on the same line
Recs2<-Recs[Recs$NoRecs>1,]
multiple<-alldata[alldata$ChildID %in% Recs2$ChildID,] #children measured more than once
multiple<-with(multiple, multiple[order(ChildID),])
attach(multiple)
as.numeric(c(weightcatr,weightcat1,weightcat2,weightcat3,weightcat4,weightcat5,weightcat6))
multiple$ChildID<-as.factor(multiple$ChildID)
multiplebase<-multiple[,c(1,2)]
multiplefirst<-multiple[!is.na(multiple$weightcatr),c(1, 37)]
multiple1<-multiple[!is.na(multiple$weightcat1),c(1, 38)]
multiple2<-multiple[!is.na(multiple$weightcat2),c(1, 39)]
multiple3<-multiple[!is.na(multiple$weightcat3),c(1, 40)]
multiple4<-multiple[!is.na(multiple$weightcat4),c(1, 41)]
multiple5<-multiple[!is.na(multiple$weightcat5),c(1,42)]
multiple6<-multiple[!is.na(multiple$weightcat6),c(1, 43)]
multipleref<-multiple[c(1, 10)]
library(plyr)
multi<-merge(multiplebase,multiplefirst,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple1,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple2,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple3,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple4,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple5,by="ChildID",all.x=TRUE)
multi<-merge(multi,multiple6,by="ChildID",all.x=TRUE)
multi<-merge(multi,multipleref,by="ChildID",all.x=TRUE)
multi2<-aggregate(ChildID~weightcatr+weightcat1+IsAccountRegistered+weightcatr+weightcat1+weightcat2+weightcat3+weightcat4+weightcat5+weightcat6,FUN=sum)
length(multi$ChildID)#33012
attach(multi)
measure1<-weightcatr
measure1<-as.numeric(measure1)
measure1<-ifelse(is.na(measure1)&weightcat1>=1,paste(weightcat1),measure1)
measure1<-ifelse(is.na(measure1)&weightcat2>=1,paste(weightcat2),measure1)
measure1<-ifelse(is.na(measure1)&weightcat3>=1,paste(weightcat3),measure1)
measure1<-ifelse(is.na(measure1)&weightcat4>=1,paste(weightcat4),measure1)
measure1<-ifelse(is.na(measure1)&weightcat5>=1,paste(weightcat5),measure1)
measure2<-ifelse(!is.na(weightcatr),paste(weightcat1),NA)
measure2<-as.numeric(measure2)
measure2<-ifelse(is.na(measure2)&(!is.na(weightcatr)|!is.na(weightcat1)),paste(weightcat2),measure2)
measure2<-as.numeric(measure2)
measure2<-ifelse(is.na(measure2)&(!is.na(weightcatr)|!is.na(weightcat1)|!is.na(weightcat2)),paste(weightcat3),measure2)
measure2<-as.numeric(measure2)
measure2<-ifelse(is.na(measure2)&(!is.na(weightcatr)|!is.na(weightcat1)|!is.na(weightcat2)|!is.na(weightcat3)),paste(weightcat4),measure2)
measure2<-as.numeric(measure2)
measure2<-ifelse(is.na(measure2)& (!is.na(weightcatr)|!is.na(weightcat1)|!is.na(weightcat2)|!is.na(weightcat3)|!is.na(weightcat4))&weightcat5>=1,paste(weightcat5),measure2)
measure2<-as.numeric(measure2)
measure2<-ifelse(is.na(measure2)& (!is.na(weightcatr)|!is.na(weightcat1)|!is.na(weightcat2)|!is.na(weightcat3)|!is.na(weightcat4)|!is.na(weightcat5))&weightcat6>=1,paste(weightcat6),measure2)
measure2<-as.numeric(measure2)
multi$measure1<-measure1
multi$measure2<-measure2
#WHAT IS THE CHANGE AFTER THE SECOND MEASUREMENT?
which((multi$measure1<multi$measure2))#which children increaed weight category from rec to their next measurement
measure3<-ifelse(!is.na(measure2)&!is.na(weightcat1),paste(weightcat1),NA)
measure2<-ifelse(!is.na(measure1)&!is.na(weightcat2)
==measure1,paste(weightcat2),paste(measure2))
measure2<-ifelse(is.na(measure1)& weightcat3>=1,paste(weightcat3),paste(measure1))
measure2<-ifelse(is.na(measure1)& weightcat4>=1,paste(weightcat4),paste(measure1))
measure2<-ifelse(is.na(measure1)& weightcat5>=1,paste(weightcat5),paste(measure1))
measure2<-ifelse(is.na(measure1)& weightcat6>=1,paste(weightcat6),paste(measure1))
multiple$measure2<-ifelse(multiple$BMI1>0,multiple$weightcat1,"NA")
#Measure 2 is from year 1 in each case
multiple$measure3<-"NA"
multiple$measure3<-ifelse(multiple$BMI2>0,multiple$weightcat2,multiple$measure3)
#Measure 3 is from year 2 in each case
multiple$measure4<-"NA"
multiple$measure4<-ifelse((multiple$measure3>=1),multiple$weightcat3,NA)
multiple$measure2<-ifelse(multiple$measure3>=1&multiple$measure4=="NA"&multiple$weightcat4>0,multiple$weightcat4,multiple$measure4)
multiple$measure2<-ifelse(multiple$measure3>=1&multiple$measure4=="NA"&multiple$weightcat5>0,multiple$weightcat5,multiple$measure4)
multiple$measure2<-ifelse(multiple$measure3>=1&multiple$measure4=="NA"&multiple$weightcat6>0,multiple$weightcat6,multiple$measure4)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI4>1,multiple$weightcat4,multiple$measure2)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI5>1,multiple$weightcat5,multiple$measure2)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI6>1,multiple$weightcat6,multiple$measure2)
multiple$measure2<-ifelse(&multiple$measure2=="NA"&multiple$BMI3>1&!multiple$weightcat3==multiple$measure1,multiple$weightcat3,multiple$measure2)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI4>1&!multiple$weightcat4==multiple$measure1,multiple$weightcat4,multiple$measure2)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI5>1&!multiple$weightcat5==multiple$measure1,multiple$weightcat5,multiple$measure2)
multiple$measure2<-ifelse(multiple$measure2=="NA"&multiple$BMI6>1&!multiple$weightcat6==multiple$measure1,multiple$weightcat6,multiple$measure2)
multiple$measure3<-ifelse(multiple$measure2>1&multiple$BMI2>1&!multiple$weightcat1==multiple$BMI2&!multiple$weightcat2==multiple$BMI2,multiple$weightcat2,multiple$measure2)
multiple$measure3<-ifelse(multiple$measure2>1&multiple$measure3=="NA"&multiple$BMI3>1&!multiple$weightcat3==multiple$measure1&!multiple$weightcat3==multiple$measure1,multiple$weightcat3,multiple$measure2)
multiple$measure3<-ifelse(multiple$measure2>1&multiple$measure3=="NA"&multiple$BMI4>1&!multiple$weightcat3==multiple$measure1&!multiple$weightcat4==multiple$measure1,multiple$weightcat4,multiple$measure2)
multiple$measure3<-ifelse(multiple$measure2>1&multiple$measure3=="NA"&multiple$BMI5>1&!multiple$weightcat3==multiple$measure1&!multiple$weightcat5==multiple$measure1,multiple$weightcat5,multiple$measure2)
multiple$measure3<-ifelse(multiple$measure2>1&multiple$measure3=="NA"&multiple$BMI6>1&!multiple$weightcat3==multiple$measure1&!multiple$weightcat6==multiple$measure1,multiple$weightcat6,multiple$measure2)