load data set

library(foreign)
affairs<-read.dta("http://fmwww.bc.edu/ec-p/data/wooldridge/affairs.dta")

Generate “Factors” to attach labels

haskids <- factor(affairs$kids,labels=c("no","yes"))
mlab <- c("very unhappy",
          "somewhat unhappy",
          "average",
          "happier than avg",
          "very happy")
marriage <- factor(affairs$ratemarr, labels=mlab)

Frequencies for having kids:

table(haskids)
haskids
 no yes 
171 430 

Marriage ratings (share):

prop.table(table(marriage))
marriage
    very unhappy somewhat unhappy          average 
       0.0266223        0.1098170        0.1547421 
happier than avg       very happy 
       0.3227953        0.3860233 

Contigency table: counts (display & store in var.)

(countstab <- table(marriage,haskids))
                  haskids
marriage            no yes
  very unhappy       3  13
  somewhat unhappy   8  58
  average           24  69
  happier than avg  40 154
  very happy        96 136

Share within “marriage” (i.e. within a row):

prop.table(countstab, margin=1)
                  haskids
marriage                  no       yes
  very unhappy     0.1875000 0.8125000
  somewhat unhappy 0.1212121 0.8787879
  average          0.2580645 0.7419355
  happier than avg 0.2061856 0.7938144
  very happy       0.4137931 0.5862069

Share within “haskids” (i.e. within a column):

prop.table(countstab, margin=2)
                  haskids
marriage                   no        yes
  very unhappy     0.01754386 0.03023256
  somewhat unhappy 0.04678363 0.13488372
  average          0.14035088 0.16046512
  happier than avg 0.23391813 0.35813953
  very happy       0.56140351 0.31627907
LS0tCnRpdGxlOiAiRGVzY3ItVGFibGVzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIGxvYWQgZGF0YSBzZXQKCmBgYHtyIHJlbWVkeTAwMX0KbGlicmFyeShmb3JlaWduKQphZmZhaXJzPC1yZWFkLmR0YSgiaHR0cDovL2Ztd3d3LmJjLmVkdS9lYy1wL2RhdGEvd29vbGRyaWRnZS9hZmZhaXJzLmR0YSIpCgpgYGAKCiMgR2VuZXJhdGUgIkZhY3RvcnMiIHRvIGF0dGFjaCBsYWJlbHMKCmBgYHtyIHJlbWVkeTAwMn0KCmhhc2tpZHMgPC0gZmFjdG9yKGFmZmFpcnMka2lkcyxsYWJlbHM9Yygibm8iLCJ5ZXMiKSkKbWxhYiA8LSBjKCJ2ZXJ5IHVuaGFwcHkiLAogICAgICAgICAgInNvbWV3aGF0IHVuaGFwcHkiLAogICAgICAgICAgImF2ZXJhZ2UiLAogICAgICAgICAgImhhcHBpZXIgdGhhbiBhdmciLAogICAgICAgICAgInZlcnkgaGFwcHkiKQptYXJyaWFnZSA8LSBmYWN0b3IoYWZmYWlycyRyYXRlbWFyciwgbGFiZWxzPW1sYWIpCgpgYGAKCiMgRnJlcXVlbmNpZXMgZm9yIGhhdmluZyBraWRzOgoKYGBge3IgcmVtZWR5MDAzfQoKdGFibGUoaGFza2lkcykKCmBgYAoKIyBNYXJyaWFnZSByYXRpbmdzIChzaGFyZSk6CgpgYGB7ciByZW1lZHkwMDR9Cgpwcm9wLnRhYmxlKHRhYmxlKG1hcnJpYWdlKSkKCmBgYAoKIyBDb250aWdlbmN5IHRhYmxlOiBjb3VudHMgKGRpc3BsYXkgJiBzdG9yZSBpbiB2YXIuKQoKYGBge3IgcmVtZWR5MDA1fQoKKGNvdW50c3RhYiA8LSB0YWJsZShtYXJyaWFnZSxoYXNraWRzKSkKCmBgYAoKIyBTaGFyZSB3aXRoaW4gIm1hcnJpYWdlIiAoaS5lLiB3aXRoaW4gYSByb3cpOgoKYGBge3IgcmVtZWR5MDA2fQoKcHJvcC50YWJsZShjb3VudHN0YWIsIG1hcmdpbj0xKQoKYGBgCgojIFNoYXJlIHdpdGhpbiAiaGFza2lkcyIgIChpLmUuIHdpdGhpbiBhIGNvbHVtbik6CgpgYGB7ciByZW1lZHkwMDd9Cgpwcm9wLnRhYmxlKGNvdW50c3RhYiwgbWFyZ2luPTIpCgpgYGAK