R: Rotate a data frame

rotate_df {sjmisc} | R Documentation

## Rotate a data frame

### Description

This function rotates a data frame, i.e. columns become rows and vice versa.

### Usage

    rotate_df(x, rn = NULL, cn = FALSE)

### Arguments

`x` | A data frame.
`rn` | Character vector (optional). If not `NULL`, the data frame's rownames will be added as (first) column to the output, with `rn` being the name of this column.
`cn` | Logical (optional), if `TRUE`, the values of the first column in `x` will be used as column names in the rotated data frame.

### Value

A (rotated) data frame.

### Examples

    x <- mtcars[1:3, 1:4]
    rotate_df(x)
    rotate_df(x, rn = "property")

    # use values in 1. column as column name
    rotate_df(x, cn = TRUE)
    rotate_df(x, rn = "property", cn = TRUE)

    # also works on list-results
    library(purrr)

    dat <- mtcars[1:3, 1:4]
    tmp <- purrr::map(dat, function(x) {
      sdev <- stats::sd(x, na.rm = TRUE)
      ulsdev <- mean(x, na.rm = TRUE) + c(-sdev, sdev)
      names(ulsdev) <- c("lower_sd", "upper_sd")
      ulsdev
    })
    tmp
    as.data.frame(tmp)
    rotate_df(tmp)

    tmp <- purrr::map_df(dat, function(x) {
      sdev <- stats::sd(x, na.rm = TRUE)
      ulsdev <- mean(x, na.rm = TRUE) + c(-sdev, sdev)
      names(ulsdev) <- c("lower_sd", "upper_sd")
      ulsdev
    })
    tmp
    rotate_df(tmp)

[Package sjmisc version 2.7.5 Index]