我想从 R 中的 YAML 中删除一些空元素。空元素可以在 yaml 中显示为
[]
。我找到了带有 ymlthis
选项的
yml_discard(~is_yml_blank(.x))
包。这应该从 yaml 中删除空元素,但这不起作用。这是一个可重现的示例:
library(yaml)
library(ymlthis)
z <- yaml.load(
"tree:
format: newick
tracks:
- class: colorstrip
rel_height: []
title: ")
y <- as.yaml(z)
y |>
yml_discard(~is_yml_blank(.x))
#> ---
#> tree:
#> format: newick
#> tracks:
#> - class: colorstrip
#> rel_height: []
#> title: null
#> ---
创建于 2024-11-08,使用 reprex v2.1.1
如您所见,它不会删除空值。我的预期输出应该如下所示:
#> ---
#> tree:
#> format: newick
#> tracks:
#> - class: colorstrip
#> ---
预期输出显示应删除没有值的元素。所以我想知道是否有人知道如何删除 R 中 YAML 文件中的空元素?
鉴于您有
z
,这是一个 list
,我似乎比使用 y
更容易使用它,这是 character
向量。例如,使用 rrapply::rapply()
修剪任何空元素:
rrapply::rrapply(z, \(x) !is.null(x), how = "prune") |>
as.yaml()
返回:
tree:
format: newick
tracks:
- class: colorstrip