Complex Tables – Exercises

April 26, 2016

(This article was first published on R-exercises, and kindly contributed to R-bloggers)

ftableThe ftable() function combines Cross-Tabulation with the ability to format , or “flatten”, contingency tables of 3 or more dimensions.

The resulting tables contain the combined counts of the categorical variables, (also factor variables in R), that are then arranged as a matrix, whose rows and columns correspond to the original data’s rows and columns. The ftable() parameters, row.vars and col.vars, control the format of the table.

Displaying a contingency table in this flat matrix form is often preferable to showing it as a higher-dimensional array. The write.ftable, and read.ftable, functions allow for the saving, and accessing of Contigency Tables of 3 or more dimensions.

Answers to the exercises are available here.

Exercise 1
In order to demonstrate the ftable() function’s capabilities, input the Titanic data from R:


For the first exercise, create a basic flat contingency table from the Titanic data, using the ftable() function.

Exercise 2
The row.vars argument specifies the table variables that will format as table rows. row.vars= is definable with variable numbers, or the variable names.

Therefore, use row.vars= to specify the variable, Class, as the row variables.

Exercise 3
Combine the row.vars and col.vars arguments to specify Class & Sex as the row variables, and Survived as the column variable.

row.vars and col.vars are definable with variable numbers, or the variable names.

Exercise 4
With the parameters from the ftable used in Exercise 3, reverse the order of the Class and Sex columns.

Exercise 5
Next, using the ftable() code from Exercise 4, specify Age as the column variable.

As you can see from this exercise, ftable() allows for the formatting of data for different areas of inquiry.

Exercise 6
Using the data.frame() function will coerce ftable columns into rows. To demonstrate this, place the ftable() from Exercise 5, within the data.frame() function.

Exercise 7
Function ftable.formula provides a formula interface, (a data = . argument), for creating flat contingency tables.

For example:
ftable(Survived ~ ., data = Titanic)

Use the formula interface for ftable() to display the quantities in the Titanic data for Male/Female passengers, by Class and Age.

Exercise 8
The ftable() function creates an object of class ftable. In order to demonstrate this, save the results of the ftable formula from Exercise 5 as an ftable variable called titanicStats.

Exercise 9
Using the write.table() function, write the ftable, titanicStats, to a file. Make sure your working directory is set to a folder where you can find the resulting file. Name the file, “table1”.

Exercise 10
read.ftable() reads in a flat-like contingency table from a file.

Using read.ftable(), read the file, “table1”, into an R language environment variable called data1.

To leave a comment for the author, please follow the link and comment on their blog: R-exercises. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)