首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vroom定义十进制分隔符

用vroom定义十进制分隔符
EN

Stack Overflow用户
提问于 2022-02-02 15:01:08
回答 1查看 402关注 0票数 2

我经常面对csv文件,这些文件是用德国语言环境保存的,因此没有正确的逗号分隔,而是用分号分隔。当然,这很容易通过定义分隔符来解决。但是,与vroom不同的是,fread不提供也定义十进制分隔符的可能性。因此,以,作为小数分隔符的数值被导入为字符,或者错误地没有任何小数分隔符,因此实际上是大数。是否有一种类似于fread中十进制分隔符工作方式的直接定义方法?

代码语言:javascript
复制
library(vroom)
library(data.table)
   
df <- data.table(row.num = 1:10
                 , V1 = rnorm(10,10,5)
                 , V2 = rnorm(10,100,30))

fwrite(df, file = "vroom_test.csv", sep = ";", dec = ",")

fread(input = "vroom_test.csv", sep = ";", dec = ",")

vroom(file = "vroom_test.csv", delim = ";")
# definition of custom locale does allow that
vroom(file = "vroom_test.csv", delim = ";", locale = locale(grouping_mark = ".", decimal_mark = ",", encoding = "UTF-8"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 16:04:37

正如注释中已经提到的,解决方案相当直截了当,唯一需要的就是将locale()选项包含到vroom调用中。locale选项的可能选项可以在其文档中找到。

代码语言:javascript
复制
vroom(file = "vroom_test.csv", delim = ";", locale = locale(grouping_mark = ".", decimal_mark = ",", encoding = "UTF-8"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70957897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档