2

私は問題があります。ベクトルxがあるとしましょう:

x

 [1] "2 416" "143"   "280"   "2 503" "144"   "128"   "55"    "697"   "826"   "9"     "35"    "9 257" "234"   "2 044" NA      "219"  
[17] NA      NA      "219"   "7 431" "82"    "88"    "186"   "231"   "192"   "456"   "585"   "75"    "142"   NA      NA      NA     
[33] "72"    "246"   "900"   "143"   "231"   "195"   "282"   "226"   "967"   "247"   "2 252" "694"   "64"    "7 744" "204"   "428"  
[49] "19"    "94"    "174"   "292"   "94"    "172"   "221"   "123"   "404"   "385"   "324"   "346"   "658"   "53"    "377"   "119"  
[65] NA      "51"    "391"   "1 072" "387"   "1 742" "518"   "173"   "366"   "67"    "163"   "1 151" "382"   "864"   "184"   "172"  
[81] NA      "538"   "39"    "2 272" "334"   "464"   "82"    "112" 

class(x) 
"character" 

このベクトルをExcelからインポートしました

x=read.csv(file="C:/Users/Documents/x.csv",header=TRUE,sep=";",na.strings=c("NA",""),
dec = ",",stringsAsFactors=FALSE,blank.lines.skip = F)

いいえ、数値に変換しようとするxと、次のようになります。

as.numeric(x)

 [1]  NA 143 280  NA 144 128  55 697 826   9  35  NA 234  NA  NA 219  NA  NA 219  NA  82  88 186 231 192 456 585  75 142  NA  NA  NA  72
[34] 246 900 143 231 195 282 226 967 247  NA 694  64  NA 204 428  19  94 174 292  94 172 221 123 404 385 324 346 658  53 377 119  NA  51
[67] 391  NA 387  NA 518 173 366  67 163  NA 382 864 184 172  NA 538  39  NA 334 464  82 112
Warning message:
NAs introduced by coercion 

したがって、いくつかの数値、つまり「2 416」はNAに変換されますが、数値を2 416に変換したいのです。Rを"2 416"数値として解釈したいのですが、2416何が間違っているのでしょうか。

よろしくお願いします

4

2 に答える 2

3

変換を行う前に、スペースを空の文字列に置き換える必要があります。

x <- c("2 416", "143", "280", "2 503")

「2416」は数値ではないため、即時変換は失敗します。

as.numeric(x)
[1]  NA 143 280  NA
Warning message:
NAs introduced by coercion 

gsub()スペースを空の文字列に置き換えてから、次のように変換するために使用します。

as.numeric(gsub(" ", "", x))
[1] 2416  143  280 2503
于 2013-02-04T12:52:23.017 に答える
0

stringrパッケージを使用する

あなたは次のようなことをすることができます

library(stringr)
> as.numeric(str_replace_all(dat,pattern=' ',replacement=''))
 [1] 2416  143  280 2503  144  128   55  697  826    9   35 9257  234 2044   NA  219   NA   NA  219 7431   82   88  186  231  192  456  585   75  142
[30]   NA   NA   NA   72  246  900  143  231  195  282  226  967  247 2252  694   64 7744  204  428   19   94  174  292   94  172  221  123  404  385
[59]  324  346  658   53  377  119   NA   51  391 1072  387 1742  518  173  366   67  163 1151  382  864  184  172   NA  538   39 2272  334  464   82
[88]  112
于 2013-02-04T12:57:33.570 に答える