gpt4 book ai didi

r - 从 R 制作复杂的 yaml

转载 作者:行者123 更新时间:2023-12-04 12:00:11 25 4
gpt4 key购买 nike

我正在尝试从 R 制作 yaml 格式文件。我知道有一个包可以完成这样的工作,但它的示例非常简单,我的对象有点棘手!!

所以我想做类似下面的东西,但我不知道我应该如何将它塑造成 R 对象(数据框?!):

tree:
format: newick
translate: ./My_example-1.translation
file: ./Xtol_example-1.tree
tracks:
- class: colorstrip
source: ./My_example-1.catdomain

rel_height: 0.6
title: Catalytic domain
- class: colorstrip
source: ./My_example-1.kingdom
rel_height: 0.6
title: Itsname
- class: colorstrip
source: ./My_example-1.temp

最佳答案

我的简短建议 - 不要将 yaml 与 R 一起使用。

(编者注:此处记录的问题似乎已得到修复——请参阅评论。)

问题 1

R 中的 yaml 包似乎无法使用,但真正的问题似乎出在 R 上。但是话又说回来,直到我看到这个问题,我才开始使用 yaml,所以我对 yaml 的理解可能存在差距整个问题。

为了成功创建有问题的 yaml,在某些时候,我们必须有一个不是列表的列表向量(对于 tracks)。我认为在 R 中没有办法做到这一点。只要我们将元素添加到列表向量中,向量就会变成列表。我猜向量只能采用固定大小的元素(因此简化了操作,因此性能良好,因此有大量的向量化建议)。

对于数字、整数等简单的原子类型,我想 R 解释器已经知道它们的大小(这是固定的)。但如果元素是一个列表,那么这种奢侈就失去了,向量被转换成一个列表,以便它可以处理元素(列表)的不同大小。

因此,不可能存在不是列表的列表向量,并且我们在 R 中将数据与 yaml 相互转换时遇到了严重的问题。

问题 2

R yaml 包的文档很少,我不知道它是如何解决这个问题的。我猜它可能使用了一个约定来绕过它。所以我尝试做的是这个(这种方法也可以解决您的问题)- 将 yaml 作为 R 对象导入,然后尝试将该 R 对象转换为 yaml。

library("yaml")
z <- yaml.load(
"tree:
format: newick
translate: ./My_example-1.translation
file: ./Xtol_example-1.tree
tracks:
- class: colorstrip
source: ./My_example-1.catdomain

rel_height: 0.6
title: Catalytic domain
- class: colorstrip
source: ./My_example-1.kingdom
rel_height: 0.6
title: Itsname
- class: colorstrip
source: ./My_example-1.temp")
names(z)
names(z$tracks)
y <- as.yaml(z)

如您所见,它不起作用。我认为您可以通过不尝试将 yaml 与 R 一起使用来减轻很多痛苦。您可以考虑使用 XML 或类似的东西。

关于r - 从 R 制作复杂的 yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6364805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com