最优雅的方式加载csv点与R中的千位分隔符

von*_*njd 9 csv r decimal decimal-point decimalformat

注意:据我所知,这个问题并不重复!我找到的所有问题/答案要么是如何从已经在R中的数据中消除点,要么在加载时如何将小数点更改为逗号.

我有一个csv,其数字如下:4.123,98.问题是因为.加载时输出变成了字符串矩阵read.table,read.csv或者read.csv2.更改dec,于事无补.

我的问题
加载这个csv的最优雅的方法是什么,以便数字变成例如4123.98数字?

cry*_*111 10

#some sample data
write.csv(data.frame(a=c("1.234,56","1.234,56"),
                     b=c("1.234,56","1.234,56")),
          "test.csv",row.names=FALSE,quote=TRUE)

#define your own numeric class
setClass('myNum')
#define conversion
setAs("character","myNum", function(from) as.numeric(gsub(",","\\.",gsub("\\.","",from))))

#read data with custom colClasses
read_data=read.csv("test.csv",stringsAsFactors=FALSE,colClasses=c("myNum","myNum"))
#let's try whether this is really a numeric
read_data[1,1]*2

#[1] 2469.12
Run Code Online (Sandbox Code Playgroud)