Source: R/read_delim.R
read_delim.Rd
read_csv()
and read_tsv()
are special cases of the generalread_delim()
. They're useful for reading the most common types offlat file data, comma separated values and tab separated values,respectively. read_csv2()
uses ;
for the field separator and ,
for thedecimal point. This is common in some European countries.
read_delim(file, delim, quote = "\"", escape_backslash = FALSE, escape_double = TRUE, col_names = TRUE, col_types = NULL, locale = default_locale(), na = c("", "NA"), quoted_na = TRUE, comment = "", trim_ws = FALSE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), skip_empty_rows = TRUE)read_csv(file, col_names = TRUE, col_types = NULL, locale = default_locale(), na = c("", "NA"), quoted_na = TRUE, quote = "\"", comment = "", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), skip_empty_rows = TRUE)read_csv2(file, col_names = TRUE, col_types = NULL, locale = default_locale(), na = c("", "NA"), quoted_na = TRUE, quote = "\"", comment = "", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), skip_empty_rows = TRUE)read_tsv(file, col_names = TRUE, col_types = NULL, locale = default_locale(), na = c("", "NA"), quoted_na = TRUE, quote = "\"", comment = "", trim_ws = TRUE, skip = 0, n_max = Inf, guess_max = min(1000, n_max), progress = show_progress(), skip_empty_rows = TRUE)
Arguments
file | Either a path to a file, a connection, or literal data(either a single string or a raw vector). Files ending in Literal data is most useful for examples and tests. It must contain atleast one new line to be recognised as data (instead of a path) or be avector of greater than length 1. Using a value of |
---|---|
delim | Single character used to separate fields within a record. |
quote | Single character used to quote strings. |
escape_backslash | Does the file use backslashes to escape specialcharacters? This is more general than |
escape_double | Does the file escape quotes by doubling them?i.e. If this option is |
col_names | Either If If Missing ( |
col_types | One of If If a column specification created by Alternatively, you can use a compact string representation where eachcharacter represents one column:c = character, i = integer, n = number, d = double,l = logical, f = factor, D = date, T = date time, t = time, ? = guess, or |
locale | The locale controls defaults that vary from place to place.The default locale is US-centric (like R), but you can use |
na | Character vector of strings to interpret as missing values. Set thisoption to |
quoted_na | Should missing values inside quotes be treated as missingvalues (the default) or strings. |
comment | A string used to identify comments. Any text after thecomment characters will be silently ignored. |
trim_ws | Should leading and trailing whitespace be trimmed fromeach field before parsing it? |
skip | Number of lines to skip before reading data. |
n_max | Maximum number of records to read. |
guess_max | Maximum number of records to use for guessing column types. |
progress | Display a progress bar? By default it will only displayin an interactive session and not while knitting a document. The displayis updated every 50,000 values and will only display if estimated readingtime is 5 seconds or more. The automatic progress bar can be disabled bysetting option |
skip_empty_rows | Should blank rows be ignored altogether? i.e. If thisoption is |
Value
A tibble()
. If there are parsing problems, a warning tells youhow many, and you can retrieve the details with problems()
.
Examples
# Input sources -------------------------------------------------------------# Read from a pathread_csv(readr_example("mtcars.csv"))
#> Parsed with column specification:#> cols(#> mpg = col_double(),#> cyl = col_double(),#> disp = col_double(),#> hp = col_double(),#> drat = col_double(),#> wt = col_double(),#> qsec = col_double(),#> vs = col_double(),#> am = col_double(),#> gear = col_double(),#> carb = col_double()#> )
#> # A tibble: 32 x 11#> mpg cyl disp hp drat wt qsec vs am gear carb#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4#> # … with 22 more rows
read_csv(readr_example("mtcars.csv.zip"))
#> Parsed with column specification:#> cols(#> mpg = col_double(),#> cyl = col_double(),#> disp = col_double(),#> hp = col_double(),#> drat = col_double(),#> wt = col_double(),#> qsec = col_double(),#> vs = col_double(),#> am = col_double(),#> gear = col_double(),#> carb = col_double()#> )
#> # A tibble: 32 x 11#> mpg cyl disp hp drat wt qsec vs am gear carb#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4#> # … with 22 more rows
read_csv(readr_example("mtcars.csv.bz2"))
#> Parsed with column specification:#> cols(#> mpg = col_double(),#> cyl = col_double(),#> disp = col_double(),#> hp = col_double(),#> drat = col_double(),#> wt = col_double(),#> qsec = col_double(),#> vs = col_double(),#> am = col_double(),#> gear = col_double(),#> carb = col_double()#> )
#> # A tibble: 32 x 11#> mpg cyl disp hp drat wt qsec vs am gear carb#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4#> # … with 22 more rows
if (FALSE) {# Including remote pathsread_csv("https://github.com/tidyverse/readr/raw/master/inst/extdata/mtcars.csv")}# Or directly from a string (must contain a newline)read_csv("x,y\n1,2\n3,4")
#> # A tibble: 2 x 2#> x y#> <dbl> <dbl>#> 1 1 2#> 2 3 4
# Column types --------------------------------------------------------------# By default, readr guesses the columns types, looking at the first 1000 rows.# You can override with a compact specification:read_csv("x,y\n1,2\n3,4", col_types = "dc")
#> # A tibble: 2 x 2#> x y #> <dbl> <chr>#> 1 1 2 #> 2 3 4
See Alsoreadr package - RDocumentation# Or with a list of column types:read_csv("x,y\n1,2\n3,4", col_types = list(col_double(), col_character()))
#> # A tibble: 2 x 2#> x y #> <dbl> <chr>#> 1 1 2 #> 2 3 4
# If there are parsing problems, you get a warning, and can extract# more details with problems()y <- read_csv("x\n1\n2\nb", col_types = list(col_double()))
#> Warning: 1 parsing failure.#> row col expected actual file#> 3 x a double b literal data
y
#> # A tibble: 3 x 1#> x#> <dbl>#> 1 1#> 2 2#> 3 NA
problems(y)
#> # A tibble: 1 x 5#> row col expected actual file #> <int> <chr> <chr> <chr> <chr> #> 1 3 x a double b literal data
# File types ----------------------------------------------------------------read_csv("a,b\n1.0,2.0")
#> # A tibble: 1 x 2#> a b#> <dbl> <dbl>#> 1 1 2
read_csv2("a;b\n1,0;2,0")
#> Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
#> # A tibble: 1 x 2#> a b#> <dbl> <dbl>#> 1 1 2
read_tsv("a\tb\n1.0\t2.0")
#> # A tibble: 1 x 2#> a b#> <dbl> <dbl>#> 1 1 2
read_delim("a|b\n1.0|2.0", delim = "|")
#> # A tibble: 1 x 2#> a b#> <dbl> <dbl>#> 1 1 2