YAML忽略像“X.0”这样的十进制值

时间:2012-08-02 20:50:14

标签: r yaml

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

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

2 个答案:

答案 0 :(得分: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)))

答案 1 :(得分:0)

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

建议更改数字的设置,并可能对数字进行舍入,以避免过多的小数位。

  

选项(位数= 2)

     

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