Learn R Programming

readr (version 0.1.1)

read_fwf: Read a fixed width file.

Description

A fixed width file can be a very compact representation of numeric data. It's also very fast to parse, because every field is in the same place in every line. Unfortunately, it's painful to parse because you need to describe the length of every field. Readr aims to make it as easy as possible by providing a number of different ways to describe the field structure.

Usage

read_fwf(file, col_positions, col_types = NULL, na = "NA", skip = 0,
  n_max = -1, progress = interactive())

fwf_empty(file, skip = 0, col_names = NULL)

fwf_widths(widths, col_names = NULL)

fwf_positions(start, end, col_names = NULL)

Arguments

file
Either a path to a file, a connection, or literal data (either a single string or a raw vector).

Files ending in .gz, .bz2, .xz, or .zip will be automatically uncompressed. Files starting with

col_positions
Column positions, as created by fwf_empty, fwf_widths or fwf_positions. To read in only selected fields, use fwf_positions.
col_types
One of NULL, a list, a named list or a string.

If NULL, the column type will be imputed from the first 30 rows on the input. This is convenient (and fast), but not robust. If the imputation fails, you'll need to supply the

na
String to use for missing values.
skip
Number of lines to skip before reading data.
n_max
Maximum number of records to read.
progress
Display a progress bar? By default it will only display in an interactive session. The display is updated every 50,000 values and will only display if estimated reading time is 5 seconds or more.
col_names
Either NULL, or a character vector column names.
widths
Width of each field.
start,end
Starting and ending (inclusive) positions of each field.

See Also

read_table to read fixed width files where each column is separated by whitespace.

Examples

Run this code
fwf_sample <- system.file("extdata/fwf-sample.txt", package = "readr")
cat(read_lines(fwf_sample))

# You can specify column positions in three ways:
# 1. Guess based on position of empty columns
read_fwf(fwf_sample, fwf_empty(fwf_sample))
# 2. A vector of field widths
read_fwf(fwf_sample, fwf_widths(c(2, 5, 3)))
# 3. Paired vectors of start and end positions
read_fwf(fwf_sample, fwf_positions(c(1, 4), c(2, 10)))

Run the code above in your browser using DataLab