is effectively a thin wrapper around data.frame, and hence is rather slow (because it calls data.frame() on each element before cbinding together). as_tibble is a new S3 generic with more efficient methods for matrices and data frames.

as_tibble(x, ...)

# S3 method for tbl_df
as_tibble(x, ..., validate = FALSE, rownames = NULL)

# S3 method for data.frame
as_tibble(x, validate = TRUE, ..., rownames = NA)

# S3 method for list
as_tibble(x, validate = TRUE, ...)

# S3 method for matrix
as_tibble(x, ..., rownames = NULL)

# S3 method for table
as_tibble(x, n = "n", ...)

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

# S3 method for default
as_tibble(x, ...)



A list. Each element of the list must have the same length.


Other arguments passed on to individual methods.


When TRUE, verifies that the input is a valid data frame (i.e. all columns are named, and are 1d vectors or lists). You may want to suppress this when you know that you already have a valid data frame and you want to save some time, or to explicitly enable it if you have a tibble that you want to re-check.


If NULL, remove row names (default for matrices, may become default for data frames in the future). If NA, keep row names (current default for data frames). Otherwise, the name of the new column that will contain the existing row names.


Name for count column, default: "n".


This is an S3 generic. tibble includes methods for data frames (adds tbl_df classes), tibbles (returns unchanged input), lists, matrices, and tables. Other types are first coerced via with stringsAsFactors = FALSE.

as_data_frame and as.tibble are aliases.


l <- list(x = 1:500, y = runif(500), z = 500:1) df <- as_tibble(l) m <- matrix(rnorm(50), ncol = 5) colnames(m) <- c("a", "b", "c", "d", "e") df <- as_tibble(m) # as_tibble is considerably simpler than # making it more suitable for use when you have things that are # lists
# NOT RUN { if (requireNamespace("microbenchmark", quiet = TRUE)) { l2 <- replicate(26, sample(letters), simplify = FALSE) names(l2) <- letters microbenchmark::microbenchmark( as_tibble(l2, validate = FALSE), as_tibble(l2), ) } if (requireNamespace("microbenchmark", quiet = TRUE)) { m <- matrix(runif(26 * 100), ncol = 26) colnames(m) <- letters microbenchmark::microbenchmark( as_tibble(m), ) } # }