これからガッツリ難易度上がってきそうな気がするので心折れないように学習していきたいと思います。今回はデータの型についてやるようです。
(第一回はこちら)
#1.データフレーム
どうもデータをひとまとめにエクセルっぽくまとめたものをデータフレームというらしいです。エクセルっぽくとかいうと怒られそうですが気にせず先に進めます。
#dslabsのライブラリを使えるようにする。
> library(dslabs)
# 関数dataにmurdersを読み込ませる
> data("murders")
# murdersのクラスを見る。データ型のこと?
> class(murders)
[1] "data.frame"
>
murdersがよく出てくるので物騒に思われる方もいるかもしれませんが、これは統計の例としてアメリカの犯罪発生数をサンプルデータとしてインポートしてるからですね。続いてデータの中身を見てみましょう。
> str(murders)
'data.frame': 51 obs. of 5 variables:
strはストラクチャーのことです。51個(アメリカの州の数)のデータに5種類の項目があるようですね。そのうち頭の何個かのデータを出すのはheadでやるとのことです。names(murders)とかもあるようなので入力して試してみてください。
#2.データフレームの操作のしかた
> head(murders)
state abb region population total
1 Alabama AL South 4779736 135
2 Alaska AK West 710231 19
3 Arizona AZ West 6392017 232
4 Arkansas AR South 2915918 93
5 California CA West 37253956 1257
6 Colorado CO West 5029196 65
次はアクセサを使って項目ごとにデータを見てみます。
> murders$population
[1] 4779736 710231 6392017 2915918 37253956
[6] 5029196 3574097 897934 601723 19687653
[11] 9920000 1360301 1567582 12830632 6483802
[16] 3046355 2853118 4339367 4533372 1328361
[21] 5773552 6547629 9883640 5303925 2967297
[26] 5988927 989415 1826341 2700551 1316470
[31] 8791894 2059179 19378102 9535483 672591
[36] 11536504 3751351 3831074 12702379 1052567
[41] 4625364 814180 6346105 25145561 2763885
[46] 625741 8001024 6724540 1852994 5686986
[51] 563626
#3.データフレームの一部を割当して操作する
次は変数に1つのカラムのデータを割当してそのデータの個数を見てみます。データのひとまとまりをVector(ベクトル?)というらしいです。
> pop <- murders$population
> length(pop)
[1] 51
#別の書き方
> pop <- murders[["population"]]
> length(pop)
[1] 51
VectorにはCharactor Vector とか Logical Vectorとかあるみたいですね。あとはFactor(別名:Categorical Data)です。levelsで見れるようです。
> levels(murders$region)
[1] "Northeast" "South" "North Central"
[4] "West"
Factorは文字じゃんって思うんですが、どうもLevelsでやった方が文字よりメモリ効率がいいので使うらしいです。計算量が多くなってくると違うんでしょうか...。
ここまででセクション1は終わりです。テストではいきなりtableを使いだしてびっくりしましたが、冷静に問題読んで慎重に解答すればだいたい解けると思います。あとはこの投稿の第一回と第2回を読んでもらいつつ、手元のRStudioで操作やり直してみたりするのもいいかもしれません。
(第三回へ続きます)