If you hack around a bit with the Hmisc::formatCats. Namely, change the MARGIN from 2 to 1. You can get there.
Part of formatCats
denom <- if (type == 1) apply(tab, 2, sum) else group.freq
pct <- 100 * (if (ncol(tab) > 1) sweep(tab, 2, denom, FUN = "/") else tab/denom)
Change to
denom <- if (type == 1) apply(tab, 1, sum) else group.freq
pct <- 100 * (if (ncol(tab) > 1) sweep(tab, 1, denom, FUN = "/") else tab/denom)
I made a gist at https://gist.github.com/jwijffels/5599349 with this modified function called myformatCats. Get it, assign it in the Hmisc namespace to override Hmisc::formatCats and it prints out the col pct.
require(Hmisc)
require(devtools)
source_gist("5599349")
assignInNamespace(x="formatCats", value=myformatCats, ns="Hmisc")
v1 <- sample(letters[8:12],200,replace=TRUE)
v2 <- sample(letters[1:2],200,replace=TRUE)
month <- sample(month.name[7:9],200,replace=TRUE)
df <- data.frame(v1,v2,month)
summary( month ~ v1 + v2 , data=df, method="reverse")