I know there is a way to easily do this using a package... I found the package a couple of months ago and did it then. However, I didn't write down the link at the time, and now I can't find the solution again for the life of me!
My question is: how do you create a nested table in R? For example, I have a data table of individuals. Every row is a different person. Every column contains a variable such as age, gender, height, etc.
I know that using the table command I can do something like this: table(data$gender, data$ageCategory).
This would make a 2 x 2 table with the counts inside.
However, I would like to make a nested table, analogous to the one here (ignore the final column with the totals): http://psycnet.apa.org/journals/ror/32/2/images/ror_32_2_199_tbl1a.gif
I.e., I would like to make a table with gender as the columns, then with the rows as age category, and within each row, additional rows with height category.
I found a package that did this easily and now I can't find it again!
Thanks for anyone who can help. This is a somewhat silly question but I thought I might have more luck here. Perhaps "nested table" isn't really the proper name for this.
An example dataset (which is always a good idea to use in your question):
dat = data.frame(value = runif(100),
                 age = round(runif(100, min = 9, max = 11)) , 
                 gender = sample(c("Male", "Female"), 100, replace = TRUE), 
                 school = sample(c("Public", "Private"), 100, replace = TRUE))
And now to produce something useful along the lines of the example table you posted:
library(plyr)
tab = count(dat, c("age", "gender", "school"))
# The contents of tab:
#    age gender  school freq
# 1    9 Female Private    6
# 2    9 Female  Public    6
# 3    9   Male Private    7
# 4    9   Male  Public    8
# 5   10 Female Private   11
# 6   10 Female  Public   13
# 7   10   Male Private   10
# 8   10   Male  Public   14
# 9   11 Female Private    3
# 10  11 Female  Public   11
# 11  11   Male Private    3
# 12  11   Male  Public    8
And to produce a table for latex, take a look at the xtable package. For Word etc it is probably easiest to perform some manual operations on the output of count.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With