1bi.bars <- function(x,grp,horiz,color,...) { 2if(missing(horiz)) horiz <- TRUE 3if(missing(color)) color <- c("blue","red") 4groups <- table(grp) 5max.val <- max(x,na.rm=TRUE) 6min.val <- min(x,na.rm=TRUE) 7gr1 <- as.numeric(names(groups)[1]) 8gr2 <- as.numeric(names(groups)[2]) 9g1 <- subset(x,grp==gr1) 10g2 <- subset(x,grp==gr2) 11t1 <- tabulate(g1,nbins=(max.val-min.val+1)) 12t2 <- tabulate(g2,nbins=(max.val-min.val+1)) 13m1 <- max(t1,t2) 14m2 <- max(t2) 15xlim <- c(-m1,m2) 16if(horiz) { 17xloc <- barplot(-t1,xlim=xlim,col=color[1],horiz=horiz,xlab="count",...) 18barplot(t2,add=TRUE,col=color[2],horiz=horiz,...) 19box() 20if((max.val - min.val) < 10) { 21axis(2,at=xloc,labels=min.val:max.val,...)} else {axis(2)} 22axis(1,...)} else { 23ylim <- c(-m1,m2) 24xloc <- barplot(-t1,ylim=ylim,col=color[1],horiz=horiz,ylab="count",...) 25barplot(t2,add=TRUE,col=color[2],horiz=horiz,...) 26box() 27axis(2,...) 28if((max.val - min.val) < 10) {axis(1,at=xloc,labels=min.val:max.val,...)} else {axis(1)}} 29}