Rの授業③

#データフレームに新しい行 ageを追加して、年齢の値を変更して追加する
maji$age <- as.integer(gsub("-[0-9]+歳$", "", maji$年齢))

続いてのトピックとなるコマンドは、これ!

なんだか難しそう。

gsubは、確か置き換える関数だったな。それももう一度確認しよう。

そして、as integer関数は初めてだ。あ、でもintegerって確か数字のことだから、数字として、という意味かな?データ型の話を思い出せば!いけるだろう。

ちなみにこのコマンドでやりたいことをR言語から日本語化すると、「majiデータフレームに、$ageという行を追加しておくれ。$ageに入る値は、~~~」ここからがよくわからない。~~~のところ。よし、さっそく解析だぁ!

gsub(',', '', c("30,700,000","150,000,000","67,900,000,000"))

gsubのところは、最初のところが置き換えたい値で、2番めが置き換える値、3番目が置き換えを行う関数や値を入れる、ということであった。

上記のコマンドだと、,がcに入っている要素から消して下さい、というコマンド。

"-[0-9]+歳$"という最初の値は、おそらく複数の正規表現が含まれていることによりわからなくなっているのだろう。ここでRによる正規表現の確認をしていこう。

まず1つ目、[文字-文字]は、文字~文字の間のいずれかにマッチする、という意味だそうだ。あと+は、「1個以上の指定した正規表現の並びにマッチする」で、$は「文字列の最後にある指定した文字にマッチする」だそうだ。

ちなみに、置き換えたい値のとこには、「50-54歳」という値が入っている。

お、わかってしまった。上記の「50-54歳」というのは、コマンドを実行することによって「50」だけに変更されるのだ。ひょうーわかったー!それで、0-9っていうのは10の位を表している。まじのデータでは10代以下がいなかったけど、10代以下に対応するためにこのような表記にしている。そして、+は一の位を表し、歳で$終了、と言っているコマンドだ!ああスッキリ理解。

as.integerに関しては、integerは整数を表す。そしてis.integerもあるけど、as.integerは型を変えるときに使い、isは変えない。今回は文字列から整数に帰るから、asを用いているのだろう。

maji[maji$age==20 | maji$age==25,]$age <- "20代"

ちなみに、最終的に、コーパスは年齢が5歳単位だけど、10歳単位にしたかったがために、このような動作を行い、続いて上記のコマンドで25と20に20代を代入する、というやり方になるんだとさ。

え、気づいたらブラインドタッチできるようになっていた。ウレピ。

続いて、tableだったのを行列(matrix)にする、とあるんだが、なんでmatrix化しなくてはならないのだろう、tableでも見やすいのにと思った私であった。

ここまででまたおつかれだし、コマンド解析できたしで、次の記事にいきたいと思います!大学で学習してたけど、そろそろと帰ります!

そして、noteの長さの相場ってどうれくらいなんだろう…?ときになった。

この記事が気に入ったらサポートをしてみませんか?