R清理角色并将其转换为数字

时间:2012-03-16 14:53:14

标签: r

R清理字符串并将其转换为数字

我有一个字符串

abc <-  " 267750Â"

class(abc)
"character"

我需要做什么来abc摆脱“”并将其从字符转换为数字。 也许as.numeric会起作用,但我需要首先摆脱“”。

我想将上述内容转换为:

abc
267750
class(abc)
 "numeric"

感谢您的帮助。

2 个答案:

答案 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"