Skip to content

Read rectangular files

These functions parse rectangular files (like csv or fixed-width format) into tibbles. They specify the overall structure of the file, and how each line is divided up into fields.

read_delim() read_csv() read_csv2() read_tsv()
Read a delimited file (including CSV and TSV) into a tibble
read_fwf() fwf_empty() fwf_widths() fwf_positions() fwf_cols()
Read a fixed width file into a tibble
Read common/combined log file into a tibble
Read whitespace-separated columns into a tibble

Column specification

The column specification describes how each column is parsed from a character vector in to a more specific data type. readr does make an educated guess about the type of each column, but you’ll need override those guesses when it gets them wrong.

problems() stop_for_problems()
Retrieve parsing problems
cols() cols_only()
Create column specification
cols_condense() spec()
Examine the column specifications for a data frame
spec_delim() spec_csv() spec_csv2() spec_tsv() spec_table()
Generate a column specification

Column parsers

Column parsers define how a single column is parsed, or how to parse a single vector. Each parser comes in two forms: parse_xxx() which is used to parse vectors that already exist in R and col_xxx() which is used to parse vectors as they are loaded by a read_xxx() function.

Locale controls

The “locale” controls all options that vary from country-to-country or language-to-language. This includes things like the character used as the decimal mark, the names of days of the week, and the encoding. See vignette("locales") for more details.

locale() default_locale()
Create locales
date_names() date_names_lang() date_names_langs()
Create or retrieve date names

Write rectangular files

Despite its name, readr also provides a number of functions to write data frames to disk, or to convert them to in-memory strings.

format_delim() format_csv() format_csv2() format_tsv()
Convert a data frame to a delimited string
write_delim() write_csv() write_csv2() write_excel_csv() write_excel_csv2() write_tsv()
Write a data frame to a delimited file

Readr editions

readr supports two editions of parser. Version one is a single threaded eager parser that readr used by default from its first release to version 1.4.0. Version two is a multi-threaded lazy parser used by default from readr 2.0.0 onwards.

with_edition() local_edition()
Temporarily change the active readr edition
Retrieve the currently active edition

Read non-rectangular files

These functions parse non-rectangular files (like csv or fixed-width format) into long (so-called melted) format. They specify the overall structure of the file, and how each line is divided up into fields.

melt_delim() melt_csv() melt_csv2() melt_tsv()
Return melted data for each token in a delimited file (including csv & tsv)
Return melted data for each token in a fixed width file
melt_table() melt_table2()
Return melted data for each token in a whitespace-separated file

Low-level IO and debugging tools

These functions can be used with non-rectangular files, binary data, and to help debug rectangular files that fail to parse.

read_file() read_file_raw() write_file()
Read/write a complete file
read_lines() read_lines_raw() write_lines()
Read/write lines to/from a file
read_rds() write_rds()
Read/write RDS files.
Read built-in object from package
Count the number of fields in each line of a file
Guess encoding of file
Re-convert character columns in existing data frame
Get path to readr example
Returns values from the clipboard
Determine whether progress bars should be shown
Determine how many threads readr should use when processing
Determine whether column types should be shown
Determine whether to read a file lazily