read_yaml {yaml}R Documentation

Read a YAML file

Description

Read a YAML document from a file and create an R object from it

Usage

  read_yaml(file, fileEncoding = "UTF-8", text, error.label, readLines.warn=TRUE, ...)

Arguments

file

either a character string naming a file or a connection open for writing

fileEncoding

character string: if non-empty declares the encoding used on a file (not a connection) so the character data can be re-encoded. See file.

text

character string: if file is not supplied and this is, then data are read from the value of text via a text connection. Notice that a literal string can be used to include (small) data sets within R code.

error.label

a label to prepend to error messages (see Details).

readLines.warn

logical (default:TRUE) suppress warnings from readLines used inside read_yaml

...

arguments to pass to yaml.load

Details

This function is a convenient wrapper for yaml.load and is a nicer alternative to yaml.load_file.

You can specify a label to be prepended to error messages via the error.label argument. If error.label is missing, read_yaml will make an educated guess for the value of error.label by either using the specified filename (when file is a character vector) or using the description of the supplied connection object (via the summary function). If text is used, the default value of error.label will be NULL.

Value

If the root YAML object is a map, a named list or list with an attribute of 'keys' is returned. If the root object is a sequence, a list or vector is returned, depending on the contents of the sequence. A vector of length 1 is returned for single objects.

Author(s)

Jeremy Stephens <jeremy.f.stephens@vumc.org>

References

YAML: http://yaml.org

libyaml: https://pyyaml.org/wiki/LibYAML

See Also

yaml.load, write_yaml, yaml.load_file

Examples

## Not run: 
  # reading from a file connection
  filename <- tempfile()
  cat("test: data\n", file = filename)
  con <- file(filename, "r")
  read_yaml(con)
  close(con)

  # using a filename to specify input file
  read_yaml(filename)

## End(Not run)

  # reading from a character vector
  read_yaml(text="- hey\n- hi\n- hello")

[Package yaml version 2.3.10 Index]