yaml_load {xfun} | R Documentation |
Read YAML data
Description
If the yaml package is installed, use yaml::yaml.load()
to read the
data. If not, use a simple parser instead, which only supports a limited
number of data types (see “Examples”). In particular, it does not
support values that span across multiple lines (such as multi-line text).
Usage
yaml_load(
x,
...,
handlers = NULL,
envir = parent.frame(),
use_yaml = loadable("yaml")
)
Arguments
x |
A character vector of YAML data. |
... , handlers |
Arguments to be passed to |
envir |
The environment in which R expressions in YAML are evaluated. To
disable the evaluation, use |
use_yaml |
Whether to use the yaml package. |
Value
An R object (typically a list).
Note
R expressions in YAML will be returned as expressions when they are
not evaluated. This is different with yaml::yaml.load()
, which returns
character strings for expressions.
Examples
# test the simple parser without using the yaml package
read_yaml = function(...) xfun::yaml_load(..., use_yaml = FALSE)
read_yaml("a: 1")
read_yaml("a: 1\nb: \"foo\"\nc: null")
read_yaml("a:\n b: false\n c: true\n d: 1.234\ne: bar")
read_yaml("a: !expr paste(1:10, collapse = \", \")")
read_yaml("a: [1, 3, 4, 2]")
read_yaml("a: [1, \"abc\", 4, 2]")
read_yaml("a: [\"foo\", \"bar\"]")
read_yaml("a: [true, false, true]")
# the other form of array is not supported
read_yaml("a:\n - b\n - c")
# and you must use the yaml package
if (loadable("yaml")) yaml_load("a:\n - b\n - c")
[Package xfun version 0.46 Index]