1

在加载具有诸如 25.0 之类的值的 yaml 文件时,将.0被忽略,我得到的是 25。是否可以强制 yaml 在不操作数据的情况下考虑该值?我尝试将值括在单引号/双引号中,但这不起作用。

[编辑]:我正在使用yamlR 编程语言的解析器包。返回的数据类型是double。如果我将值设置为 25.2,我会得到相同的值。如何强制 YAML/R 按原样读取 YAML 中的信息。

4

2 回答 2

1

您的问题是解析器识别出这些是浮点数,而在 R 中,25.0 和 25 之间没有区别。例如,试试这个:

identical(25.0, 25)

25.0 和 25 只是同一个浮点数的两种不同表示。如果您想保留提供数据的形式,您必须将它们作为字符串读取(如果您需要执行计算,您可以稍后将其转换为数字)。您可以使用处理程序执行此操作:

yaml.load("25.0", handlers=list("float#fix"=function(x) as.character(x)))

于 2012-08-03T09:32:31.807 回答
0

也许这会有所帮助:http ://tolstoy.newcastle.edu.au/R/help/06/05/28016.html

建议更改数字设置,并可能将数字四舍五入以避免太多小数位。

选项(数字=2)

格式(roundf(x,2),nsmall = 2)

于 2012-08-02T21:58:11.067 回答