R: Flatten nested data frames

flatten {jsonlite} | R Documentation

## Flatten nested data frames

### Description

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.

### Usage

    flatten(x, recursive = TRUE)

### Arguments

`x` | a data frame
`recursive` | flatten recursively

### Examples

    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)

[Package jsonlite version 1.5 Index]