Flatten nested data frames
In a nested data frame, one or more of the columns consist of another data frame. These structures frequently appear when parsing JSON data from the web. We can flatten such data frames into a regular 2 dimensional tabular structure.
flatten(x, recursive = TRUE)
x |
a data frame |
recursive |
flatten recursively |
options(stringsAsFactors=FALSE) x <- data.frame(driver = c("Bowser", "Peach"), occupation = c("Koopa", "Princess")) x$vehicle <- data.frame(model = c("Piranha Prowler", "Royal Racer")) x$vehicle$stats <- data.frame(speed = c(55, 34), weight = c(67, 24), drift = c(35, 32)) str(x) str(flatten(x)) str(flatten(x, recursive = FALSE)) ## Not run: data1 <- fromJSON("https://api.github.com/users/hadley/repos") colnames(data1) colnames(data1$owner) colnames(flatten(data1)) # or for short: data2 <- fromJSON("https://api.github.com/users/hadley/repos", flatten = TRUE) colnames(data2) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.