統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

統計ソフトRで文字列を操作する

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

文字通しを結合させたいことがある。

たとえば、数字にパーセントをつけたい。

アルファベット一文字に1から順番に数字をつけたい。

たとえば、Q1, Q2, Q3とか。

またある言葉が含まれるデータだけ取り出したい。

たとえば、趣味のうち、読書と答えた回答者だけ取り出したい。

こんなとき統計ソフトRではどうやるか?

文字列ベクトルの結合

統計ソフトRでは、 paste()で文字列を操作できる。

例えば、下記のように、 イロハニと1234を結合することができる。

kigo <- c("イ","ロ","ハ","ニ")
no <- 1:4
ID <- paste(kigo,no)

結果はこちら。

> ID
[1] "イ 1" "ロ 2" "ハ 3" "ニ 4"

数字に%をつけることもできてしまう。

sep=""はスペースなしの指示。

tab <- matrix(c(1000,900,800,700,0,100,200,300),nr=4)
colnames(tab) <- c("no","yes")
rownames(tab) <- paste("Q",1:4,sep="")
tab.prop <- (prop.table(tab,1)*100)[,2]
paste(tab.prop,"%",sep="")

結果は以下の通り。

> paste(tab.prop,"%",sep="")
[1] "0%"  "10%" "20%" "30%"

パターンマッチで行を選択

UNIXのコマンドと同様に、 統計ソフトRでもgrep()が使える。

例えば、変数shumiに「読書」が含まれるデータの行を 抜き出したいときは、

grep("読書",shumi)

とする。

データフレームdatの変数の一つがshumiだとして、 「読書」が含まれる行を選ぶには

dat[grep("読書",shumi),]

とする。

以下のように、取り出したものに名前を付ければ、 オブジェクトとしてそのあと使える。

dat.dokusho <- dat[grep("読書",shumi),]

まとめ

文字列の取り扱いのうち、結合とパターンマッチ選択方法を紹介した。

試してみてはいかが?

参考書籍