我想在csv文件中读取123.456
等数字,其中.
是千位分隔符。但是,R将.
视为小数点分隔符,而不是123456
,它会将123.456
视为write("123.456", "number.csv")
read.csv("number.csv", header = F, stringsAsFactors = F)
。是否有比R - read csv with numeric columns containing thousands separator中列出的更简单的解决方案?
ASC
答案 0 :(得分:4)
疯狂的世界里充满了疯狂的人,他们以疯狂的方式写数字。在计算中,所有这些疯狂都被称为" locale"。
readr
包允许您指定区域设置选项。你感兴趣的是什么被称为"分组标记"或"千位分隔符"。
例如:
library(readr)
read_csv('x,y\n1.234,5.678') # Default is not what you want
#> # A tibble: 1 x 2
#> x y
#> <dbl> <dbl>
#> 1 1.23 5.68
# This is what you want
read_csv('x,y\n1.234,5.678', locale = locale(grouping_mark = "."))
#> # A tibble: 1 x 2
#> x y
#> <dbl> <dbl>
#> 1 1234 5678