R清理字符串并将其转换为数字
我有一个字符串
abc <- "Â 267750Â"
class(abc)
"character"
我需要做什么来abc摆脱“”并将其从字符转换为数字。 也许as.numeric会起作用,但我需要首先摆脱“”。
我想将上述内容转换为:
abc
267750
class(abc)
"numeric"
感谢您的帮助。
答案 0 :(得分:7)
您可以使用正则表达式解析出您不想要的内容:
test <- "532.dcx3vds98"
destring <- function(x,keep="0-9.") {
return( as.numeric(gsub(paste("[^",keep,"]+",sep=""),"",x)) )
}
destring(test)
返回532.398
。
修改强>
现在位于taRifx
:
library(taRifx)
test <- "532.dcx3vds98"
destring(test)
答案 1 :(得分:5)
使用stringr
缩短一点:
# load library
library(stringr)
# load data
abc <- "Â 267750Â"
# extract digits
abc <- as.numeric(str_extract(abc, "[0-9]+"))
# check the result
abc
[1] 267750
class(abc)
[1] "numeric"