2012-03-16 1 views
4

Rに変換するには、私はABCに行うために必要なものに文字列Rの文字列をクリーンアップし、数値</p> <p>に変換する文字をきれいにし、数値

abc <- " 267750Â" 

class(abc) 
"character" 

を持っています"ÂÂ"を取り除き、それを文字から数値に変換します。 おそらくas.numericは動作しますが、私は最初に "ÂÂ"を取り除く必要があります。私は上記を変換したい

abc 
267750 
class(abc) 
"numeric" 

はあなたの助けをいただき、ありがとうございます。

答えて

7

あなたは正規表現をしたくないものを解析することができます:

test <- "532.dcx3vds98" 
destring <- function(x,keep="0-9.") { 
    return(as.numeric(gsub(paste("[^",keep,"]+",sep=""),"",x))) 
} 
destring(test) 

返し532.398

編集

これはtaRifxになりました:stringrを使用して

library(taRifx) 
test <- "532.dcx3vds98" 
destring(test) 
+0

。どうもありがとうございました。 –

+2

おそらく次のバージョンの 'taRifx'に関数を追加するので、使いやすくなります。誰かが巧妙な機能を追加する必要があると思っている人は、私に知らせてください。 –

5

少し短い:

非常に便利です
# 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" 
関連する問題