R: Coerce lists, matrices, and more to data frames

as_tibble {tibble} | R Documentation

## Coerce lists, matrices, and more to data frames

### Description

`as_tibble()` turns an existing object, such as a data frame or matrix, into a so-called tibble, a data frame with class `tbl_df`. This is in contrast with `tibble()`, which builds a tibble from individual columns. `as_tibble()` is to `tibble()` as `base::as.data.frame()` is to `base::data.frame()`.

`as_tibble()` is an S3 generic, with methods for:

- `data.frame`: Thin wrapper around the `list` method that implements tibble's treatment of rownames.

- `matrix`, `poly`, `ts`, `table`

- Default: Other inputs are first coerced with `base::as.data.frame()`.

`as_tibble_row()` converts a vector to a tibble with one row. The input must be a bare vector, e.g. vectors of dates are not supported yet. If the input is a list, all elements must have length one.

`as_tibble_col()` converts a vector to a tibble with one column.

### Usage

    as_tibble(
      x,
      ...,
      .rows = NULL,
      .name_repair = c("check_unique", "unique", "universal", "minimal"),
      rownames = pkgconfig::get_config("tibble::rownames", NULL)
    )

    ## S3 method for class 'data.frame'
    as_tibble(
      x,
      validate = NULL,
      ...,
      .rows = NULL,
      .name_repair = c("check_unique", "unique", "universal", "minimal"),
      rownames = pkgconfig::get_config("tibble::rownames", NULL)
    )

    ## S3 method for class 'list'
    as_tibble(
      x,
      validate = NULL,
      ...,
      .rows = NULL,
      .name_repair = c("check_unique", "unique", "universal", "minimal")
    )

    ## S3 method for class 'matrix'
    as_tibble(x, ..., validate = NULL, .name_repair = NULL)

    ## S3 method for class 'table'
    as_tibble(x, `_n` = "n", ..., n = `_n`, .name_repair = "check_unique")

    ## S3 method for class ''NULL''
    as_tibble(x, ...)

    ## Default S3 method:
    as_tibble(x, ...)

    as_tibble_row(
      x,
      .name_repair = c("check_unique", "unique", "universal", "minimal")
    )

    as_tibble_col(x, column_name = "value")

### Arguments

`x` | A data frame, list, matrix, or other object that could reasonably be coerced to a tibble.
`...` | Unused, for extensibility.
`.rows` | The number of rows, useful to create a 0-column tibble or just as an additional check.
`.name_repair` | Treatment of problematic column names: `"minimal"`: No name repair or checks, beyond basic existence, `"unique"`: Make sure names are unique and not empty, `"check_unique"`: (default value), no name repair, but check they are `unique`, `"universal"`: Make the names `unique` and syntactic a function: apply custom name repair (e.g., `.name_repair = make.names` for names in the style of base R). A purrr-style anonymous function, see `rlang::as_function()` This argument is passed on as `repair` to `vctrs::vec_as_names()`. See there for more details on these terms and the strategies used to enforce them.
`rownames` | How to treat existing row names of a data frame or matrix: `NULL`: remove row names. This is the default. `NA`: keep row names. A string: the name of a new column. Existing rownames are transferred into this column and the `row.names` attribute is deleted. Read more in rownames.
`_n, validate` | For compatibility only, do not use for new code.
`n` | Name for count column, default: `"n"`.
`column_name` | Name of the column.

### Row names

The default behavior is to silently remove row names.

New code should explicitly convert row names to a new column using the `rownames` argument.

For existing code that relies on the retention of row names, call `pkgconfig::set_config("tibble::rownames" = NA)` in your script or in your package's `.onLoad()` function.

### Life cycle

Using `as_tibble()` for vectors is superseded as of version 3.0.0, prefer the more expressive maturing `as_tibble_row()` and `as_tibble_col()` variants for new code.

### See Also

`tibble()` constructs a tibble from individual columns. `enframe()` converts a named vector to a tibble with a column of names and column of values. Name repair is implemented using `vctrs::vec_as_names()`.

### Examples

    m <- matrix(rnorm(50), ncol = 5)
    colnames(m) <- c("a", "b", "c", "d", "e")
    df <- as_tibble(m)

    as_tibble_row(c(a = 1, b = 2))
    as_tibble_row(list(c = "three", d = list(4:5)))
    as_tibble_row(1:3, .name_repair = "unique")

    as_tibble_col(1:3)
    as_tibble_col(
      list(c = "three", d = list(4:5)),
      column_name = "data"
    )

[Package tibble version 3.0.6 Index]