将具有多个小数的数字字符串转换为R中的数字数据类型
我的数据框中有一个800万左右值的变量,其格式如下:将具有多个小数的数字字符串转换为R中的数字数据类型,r,type-conversion,R,Type Conversion,我的数据框中有一个800万左右值的变量,其格式如下:1.275.900.0(字符数据类型)。把它们改成因子是不行的,因为它会减慢处理速度,所以我需要数字 我试着去掉小数并用 df$variable = as.numeric(sub(".", "", df$variable, fixed=TRUE)) 不幸的是,我收到了警告消息: 强制引入NAs。 我该怎么做 如前所述: testTrygsub而不是sub好吧,我再次得到了错误,但与之前的尝试不同,它没有计算出整个向量。事实上,大部分东西似乎都
1.275.900.0
(字符数据类型)。把它们改成因子是不行的,因为它会减慢处理速度,所以我需要数字
我试着去掉小数并用
df$variable = as.numeric(sub(".", "", df$variable, fixed=TRUE))
不幸的是,我收到了警告消息:
强制引入NAs。
我该怎么做 如前所述:
testTrygsub
而不是sub
好吧,我再次得到了错误,但与之前的尝试不同,它没有计算出整个向量。事实上,大部分东西似乎都在这里。有一个案例上面的内容不会被理解,但它很琐碎,无论如何都会被删除。我想你可能不得不逃避这个问题。因为否则它将被解释为正则表达式。@TinglTangBob这是不必要的,因为有fixed=TRUE
参数。问题是sub
,它将只替换每个元素中的第一个
,这就是为什么我建议gsub
。但是您想要什么答案?1.275.900.0是否应变为1.2759000或1275.9000或1275900.0或12759000?
test<-"1.275.900.0"
as.numeric(gsub(".", "", test,fixed=T))