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}