English · PDF 157
以下几节将更详细地介绍这些解析器。
解析数字看起来应该很简单,但有三个问题使其变得棘手:
为了解决第一个问题,readr 引入了“区域设置(locale)”的概念,这是一个指定因地区而异的解析选项的对象。在解析数字时,最重要的选项是用于小数点的字符。你可以通过创建一个新的 locale 并设置 decimal_mark 参数来覆盖默认值 .:
parse_double("1.23") #> [1] 1.23 parse_double("1,23", locale = locale(decimal_mark = ",")) #> [1] 1.23
readr 的默认区域设置是以美国为中心的,因为通常 R 也是以美国为中心的(也就是说,R 基础包的文档是用美式英语编写的)。另一种方法是尝试从你的操作系统猜测默认值。这很难做好,而且更重要的是,它会使你的代码变得脆弱:即使它能在你的电脑上运行,当你把它通过电子邮件发给另一个国家的同事时,也可能会失败。