【发布时间】:2012-03-16 14:53:13
【问题描述】:
R 清理字符串并将其转换为数字
我有一个字符串
abc <- "Â 267750Â"
class(abc)
"character"
我需要对 abc 做些什么来摆脱“”并将其从字符转换为数字。 也许 as.numeric 会起作用,但我需要先去掉“”。
我想把上面的转换成:
abc
267750
class(abc)
"numeric"
感谢您的帮助。
【问题讨论】:
标签: r
R 清理字符串并将其转换为数字
我有一个字符串
abc <- "Â 267750Â"
class(abc)
"character"
我需要对 abc 做些什么来摆脱“”并将其从字符转换为数字。 也许 as.numeric 会起作用,但我需要先去掉“”。
我想把上面的转换成:
abc
267750
class(abc)
"numeric"
感谢您的帮助。
【问题讨论】:
标签: r
你可以用正则表达式解析出你不想要的东西:
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)
【讨论】:
taRifx 的下一个版本中,以便更易于使用。如果有人认为需要添加任何聪明的功能(或更好的功能名称),请告诉我。
使用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"
【讨论】: