@RicardoSaporta のソリューション (+1) が気に入っていますが、 ?prop.tableも  使用できます。
> df<-data.frame(x1=c(1,1,0,0,1,0),x2=c("a","a","b","a","c","c"))
> df
  x1 x2
1  1  a
2  1  a
3  0  b
4  0  a
5  1  c
6  0  c
> tab <- table(df$x2, df$x1)
> tab
    0 1
  a 1 2
  b 1 0
  c 1 1
> ptab <- prop.table(tab, margin=1)
> ptab
            0         1
  a 0.3333333 0.6666667
  b 1.0000000 0.0000000
  c 0.5000000 0.5000000
> dframe <- data.frame(values=rownames(tab), prop=ptab[,2], count=tab[,2])
> dframe
  values      prop count
a      a 0.6666667     2
b      b 0.0000000     0
c      c 0.5000000     1
必要に応じて、これを 1 つの関数にまとめることができます。  
getprops <- function(values, indicator){
  tab    <- table(values, indicator)
  ptab   <- prop.table(tab, margin=1)
  dframe <- data.frame(values=rownames(tab), prop=ptab[,2], count=tab[,2])
  return(dframe)
}
> getprops(values=df$x2, indicator=df$x2)
  values      prop count
a      a 0.6666667     2
b      b 0.0000000     0
c      c 0.5000000     1