注意:据我所知,这个问题不是重复的!我发现的所有问题/答案都是如何从 R 中已有的数据中消除点,或者如何在加载数据时将小数点更改为逗号。
我有一个 csv,其中包含以下数字:4.123,98
。问题是,由于 .
,当使用 read.table
、read.csv
或 加载时,输出变成字符串矩阵读取.csv2
。将 dec
更改为 ,
没有帮助。
我的问题
加载此 csv 的最优雅的方法是什么,以便数字变成例如4123.98
作为数字?
最佳答案
改编自这篇文章:Specify custom Date format for colClasses argument in read.table/read.csv
#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
关于r - 在 R 中用点作为千位分隔符加载 csv 的最优雅的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30218209/