<code>
ordered(c('A','B','AB','O'),levels=c('A','B','AB','O'))->todo
as.integer(todo)->todo
binary<-function(p_number,n=3) {
bsum<-0
bexp<-1
while (p_number > 0) {
digit<-p_number %% 2
p_number<-floor(p_number / 2)
bsum<-bsum + digit * bexp
bexp<-bexp * 10
}
n<-max(n,nchar(bsum))
sprintf(paste0("%0",n,"d"),bsum)
}
sapply(todo, binary)
</code>