After creating the dataset with as.data.frame.table, can reshape into 'wide' format
out <- as.data.frame.table(UCBAdmissions)
out$rn <- with(out, ave(seq_along(Admit), Admit, Gender, Dept, FUN = seq_along))
out1 <- transform(reshape(out, idvar = c("Gender", "Dept", "rn"), 
    direction = 'wide', timevar = 'Admit'), 
            applications = Freq.Admitted + Freq.Rejected)[, c(2, 1, 4:6)]
names(out1)[1:4] <- c('dept', 'applicant.gender', 'admit', 'reject')
row.names(out1) <- NULL
out1
#   dept applicant.gender admit reject applications
#1     A             Male   512    313          825
#2     A           Female    89     19          108
#3     B             Male   353    207          560
#4     B           Female    17      8           25
#5     C             Male   120    205          325
#6     C           Female   202    391          593
#7     D             Male   138    279          417
#8     D           Female   131    244          375
#9     E             Male    53    138          191
#10    E           Female    94    299          393
#11    F             Male    22    351          373
#12    F           Female    24    317          341