我正在研究哪种导入方法更好,read.csv或read_csv。有几个线程比较导入时间等,并且大多数指向将read_csv用于较大的文件(也包括fread)。
在导入数据时,我遇到了异常情况。
我使用read.csv和read_csv导入相同的csv文件
CSV1 <- read.csv("C:\\Users\\AH0168850\\Desktop\\Claims.csv")
CSV2 <- read_csv("C:\\Users\\AH0168850\\Desktop\\Claims.csv")
class(CSV1$claim_amount)
class(CSV2$claim_amount)
CSV1$claim_amount <- as.numeric(CSV1$claim_amount)
CSV2$claim_amount <- as.numeric(CSV2$claim_amount)
CSV2$claim_amount <- as.numeric(sub('\\$','',CSV2$claim_amount))
Claim_amount具有$值。当我使用read.csv时,claim_amount被分类为因素,而read_csv将其分类为字符。
在执行as.numeric将列转换为数字时,使用read.csv导入的数据可以顺利通过。但是,使用read_csv导入的数据会将所有值都转换为NA,并带有警告“强制性引入的NA”
要成功转换read_csv数据,在使用as.numeric之前,我必须使用替代方法。有几个线程强调了类似功能的使用
例如: http://r.789695.n4.nabble.com/Converting-dollar-value-factors-to-numeric-td2130536.html
https://www.rforexcelusers.com/remove-currency-dollar-sign-r/
但是,我找不到任何能解释这种情况发生的原因。我确实读过read.csv强制了字符变量,但是我不确定为什么使用as.numeric会有所不同。