| melt_fwf | R Documentation | 
For certain non-rectangular data formats, it can be useful to parse the data into a melted format where each row represents a single token.
melt_fwf(
  file,
  col_positions,
  locale = default_locale(),
  na = c("", "NA"),
  comment = "",
  trim_ws = TRUE,
  skip = 0,
  n_max = Inf,
  progress = show_progress(),
  skip_empty_rows = FALSE
)
fwf_empty(
  file,
  skip = 0,
  skip_empty_rows = FALSE,
  col_names = NULL,
  comment = "",
  n = 100L
)
fwf_widths(widths, col_names = NULL)
fwf_positions(start, end = NULL, col_names = NULL)
fwf_cols(...)
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. To be recognised as
literal data, the input must be either wrapped with  Using a value of   | 
col_positions | 
 Column positions, as created by   | 
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 this
option to   | 
comment | 
 A string used to identify comments. Any text after the comment characters will be silently ignored.  | 
trim_ws | 
 Should leading and trailing whitespace (ASCII spaces and tabs) be trimmed from each field before parsing it?  | 
skip | 
 Number of lines to skip before reading data.  | 
n_max | 
 Maximum number of lines to read.  | 
progress | 
 Display a progress bar? By default it will only display
in an interactive session and not while knitting a document. The automatic
progress bar can be disabled by setting option   | 
skip_empty_rows | 
 Should blank rows be ignored altogether? i.e. If this
option is   | 
col_names | 
 Either NULL, or a character vector column names.  | 
n | 
 Number of lines the tokenizer will read to determine file structure. By default it is set to 100.  | 
widths | 
 Width of each field. Use NA as width of last field when reading a ragged fwf file.  | 
start, end | 
 Starting and ending (inclusive) positions of each field. Use NA as last end field when reading a ragged fwf file.  | 
... | 
 If the first element is a data frame,
then it must have all numeric columns and either one or two rows.
The column names are the variable names. The column values are the
variable widths if a length one vector, and if length two, variable start and end
positions. The elements of   | 
melt_fwf() parses each token of a fixed width file into a single row, but
it still requires that each field is in the same in every row of the
source file.
A tibble() of four columns:
row, the row that the token comes from in the original file
col, the column that the token comes from in the original file
data_type, the data type of the token, e.g. "integer", "character",
"date", guessed in a similar way to the guess_parser() function.
value, the token itself as a character string, unchanged from its
representation in the original file.
If there are parsing problems, a warning tells you
how many, and you can retrieve the details with problems().
melt_table() to melt fixed width files where each
column is separated by whitespace, and melt_fwf() for the conventional
way to read rectangular data from fixed width files.
fwf_sample <- meltr_example("fwf-sample.txt")
writeLines(readLines(fwf_sample))
# You can specify column positions in several ways:
# 1. Guess based on position of empty columns
melt_fwf(fwf_sample, fwf_empty(fwf_sample, col_names = c("first", "last", "state", "ssn")))
# 2. A vector of field widths
melt_fwf(fwf_sample, fwf_widths(c(20, 10, 12), c("name", "state", "ssn")))
# 3. Paired vectors of start and end positions
melt_fwf(fwf_sample, fwf_positions(c(1, 30), c(10, 42), c("name", "ssn")))
# 4. Named arguments with start and end positions
melt_fwf(fwf_sample, fwf_cols(name = c(1, 10), ssn = c(30, 42)))
# 5. Named arguments with column widths
melt_fwf(fwf_sample, fwf_cols(name = 20, state = 10, ssn = 12))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.