R очистить символ и преобразовать его в числовой - PullRequest
4 голосов
/ 16 марта 2012

R очистка строки символов и преобразование ее в числовое значение

У меня есть строка символов

abc <-  "Â 267750Â"

class(abc)
"character"

Что мне нужно сделать, чтобы abc избавился от "Â" и преобразовал его из букв в цифры. Возможно, as.numeric будет работать, но мне нужно сначала избавиться от "Â".

Я хочу преобразовать вышеприведенное в:

abc
267750
class(abc)
 "numeric"

Спасибо за вашу помощь.

Ответы [ 2 ]

7 голосов
/ 16 марта 2012

Вы можете разобрать, что вы не хотите с регулярными выражениями:

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)
5 голосов
/ 16 марта 2012

немного короче, используя 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...