Goodな生活

INTPの好奇心の受け皿

【R】ゼロを含む先頭n桁を取り出す[formatC][substr]

連番の数字の先頭2桁を取り出すときのコード。
例えばxを995から1005までの整数とし、ゼロを含む先頭2桁を取り出す。

> x <- 995:1005
> x
 [1]  995  996  997  998  999 1000 1001 1002 1003 1004 1005
> class(x)
[1] "integer"

はじめの5つのみ3桁の整数なので、数値の頭にゼロを詰め、4桁の数値にする(桁を揃える)。formatC関数を使うと、

> x <- formatC(x,width=4,flag="0")
> x
 [1] "0995" "0996" "0997" "0998" "0999" "1000" "1001" "1002" "1003" "1004" "1005"
> class(x)
[1] "character"

4桁の数値になる。しかしxのclassがinteger(整数)からcharacter(文字)に変わる。
3桁のxから頭2桁を取り出してyとする。最後にyを数値に変換する。

> y <- substr(x,1,2)
> y <- as.integer(y)*1.0
> y 
 [1]  9  9  9  9  9 10 10 10 10 10 10
> class(y)
[1] "numeric"