Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

In my morning attempt to read the whole internet before beginning work, I came across a program on the BBC website which allows you to see which Olympic athletes are your body doubles. Or rather, which athletes share your height and weight, and therefore your body mass index. Being a Canadian, I exist in an uneasy hybrid world of measurements, comfortable with metric units for some things and imperial for others. I know my height in cm (185), and my weight in lbs (185). This makes my Olympic ‘body double’ Elizabeth Gleadle, the Canadian javelin thrower.

Apart from discovering that I may have a body type for women’s competitive javelin, I was intrigued by the symmetry of height(cm) = weight(lbs). Over what range is this equivalence healthy? A quick googling of BMI tells me that ‘normal’ range of BMI is from 18.5 to 25. I come in at 24.5; well fed, to be sure, but in the safe zone.

Scratching this curiosity itch is nothing that can’t be handled by a quick R script. Looks like you can carry the height = weight equivalence, adding a pound for each cm of height, all the way up to about 8 feet tall (~245lbs) before you’re underweight, according to BMI.

Okay, now I should get to work.

Code for the curious.

lowerH<-100
upperH<-162.5+(5*21.5)

hw<-seq(lowerH,upperH,length.out=100)
BMI<-numeric(100)
counter=1
for(i in hw)
{
h<-i
w<-i
BMI[counter]<-(w/2.205)/(1/100*h)^2
counter=counter+1
}

png('BMI_sameWH.png')
plot(hw,BMI,type='l',xlab='Height(cm) = Weight(lbs)',main='Same height as weight BMI')
polygon(x=c(90,300,300,90),y=c(50,50,30,30),col=colors()[325])
polygon(x=c(90,300,300,90),y=c(30,30,25,25),col=colors()[330])
polygon(x=c(90,300,300,90),y=c(25,25,18.5,18.5),col=colors()[235])
polygon(x=c(90,300,300,90),y=c(18.5,18.5,0,0),col=colors()[240])
lines(hw,BMI,lwd=2,col='red')
abline(h=18.5)
abline(h=25)
abline(h=30)
text(250,37.5,label='Obesity')
text(250,27.5,label='Overweight')
text(150,21,label='Normal')
text(150,16.75,label='Underweight')
points(185,(185/2.205)/(1/100*185)^2,pch=8,cex=2,col='blue')
legend('topright',legend="The sweet spot\n 185cm, 185lbs\n", pch=8,col='blue',bg='white')
dev.off()
#underweight = <18.5
#Normal weight = 18.5–24.9
#Overweight = 25–29.9