Learn R Programming

yaml (version 2.3.10)

read_yaml: 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, ...)

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.

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

Author

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

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.

References

YAML: http://yaml.org

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

See Also

yaml.load, write_yaml, yaml.load_file

Examples

Run this code
if (FALSE) {
  # 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)
}

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

Run the code above in your browser using DataLab