Edx:ハーバード大学のデータサイエンス(R)学習記録2
最近Pythonでのデータスクレイピングが話題ですが、統計を勉強してきた人にはRも有名です。Rを勉強するには書籍も多くありますが、オンラインで世界の大学の講義が無料で受けられるEdxにもRを学べる講座があります。
Edxは前編英語なのですが、実はgoogle cromeの自動翻訳機能で動画まで翻訳してくれるので案外なんとかなったりします。
Edxは日本では馴染みが無いようなので、自分への備忘録と「英語できなくてもEdxでここまでできた」という過程を上げていきたいと思います。
ハーバード大学が提供する「データサイエンス:Rの基礎」
前回は導入部分でしたが、今回からいよいよ講義に入ります。
セクション1の概要
1.1モチベーション
ここはまだ導入とRstdioの紹介でした。
さらっと流します。
1.2 Rの基本
ここではObjectと変数という話が出てきました。
Rでは変数を入力する時の決まりがあります
a <- 100
このように入力すると「aには100が入ります」という意味になります。Rは=を使わず <ー という矢印みたいなマークを使うのがお約束。
a*2
200
a×2でEnter押すと「200」と答えが出ます。こういったような基本的な使い方やいくつかの関数を学びました。
DateCampと課題
次に出てくるのがDateCamp。これはブラウザ上でRのコマンドが打てるウェブアプリみたいなものです。そのため専用ソフトをインストールしなくても受講できる仕組みになっています。
Edxは受講期間が定められていて、その範囲内であれば課題やテストを受けることができます。受講期間を過ぎてしまうと講義は受けられますが、課題を受けることができません。課題もDateCampで行い、正解すると100ポイント、間違ったりヒントをもらうと減点される仕組みになっています。
ここで注意があるのですが、このDateCampは自動翻訳すると入力に不具合が出ます。そのためここだけは自動翻訳をせずに1行1行英語を選択して翻訳することをおすすめします。それか先に翻訳して入力する時に原本に戻してもいいかもしれません。
ここでの解答は最終的な成績として残るのでかなり気合が入ります。
データ型
先ほどの a <- 100 は数字を入れましたが、これを文字列として認識したり0/1のカテゴリー変数にしたり色々できます。他にもこの辺は一般的なRの本にも乗っている内容ですので、イメージしにくい時は本を読んだりRを何かしらで扱ったことがある人ならスムーズかも。
その他学んだ事
class関数:データの型を確認する
データフレームについて
str関数:データフレームの構造を知る(何列・何行のデータか?変数名とそのclass)
head関数:データフレームの最初6行を表示
$(アクセサー):データフレームの変数にアクセス
$の代わりに[[]]で囲んでも一緒
names関数:データフレームの変数名一覧を出してくれる
length:変数名のデータ数を表示
#例:dataというデータフレームにpopulationという変数名があった時#
pop <- data$population #もしくはdata[[population]]でもOK
length(pop)
文字ベクトル:患者氏名など。文字列class関数"character"
因子ベクトル:男性・女性などのカテゴリカルデータ。class関数"factor"。levels関数で要因を見ることができるが整数にした方があとあと整理しやすい。
論理ベクトル:trueとfalse。class関数"logical"
#3==2という数式を入れて真か偽か?
z <- 3 == 2
z
[FALSE]
比較演算子(relational operator)
== は等号、!=は不等号、<=など
identical(a, b)はa==bと同じ意味で答えがtrue or falseで返ってくる
因子の数を確認するときは入れ子(ネスト)する
length(levels(data$region))
[1]4
#levelsだけだとどんなラベルがあるかがわかり、lengthはデータの数がわかる
> levels(murders$region)
[1] "Northeast" "South" "North Central" "West"
> length(murders$region)
[1] 51
table関数は$を使うことで各因数にそれぞれデータがいくつ入っているかがわかる
table(data$sex)
male female
30 27
この辺りでセクション1が終わりました。
感想
Progateほど事前の解説と課題がリンクしきれていないので推測が必要に感じ、苦戦するところもありました。でも何とか全問正解できたので一安心でした。
またディスカッションは今の所使いこなせていません。世界の受講生もRに慣れていない人も多いようで「どんな質問をすればいいかわからないんだろうなー」といった印象
結論
みんな自分と同じようなもんかもしれない!引き続き頑張ろう!
ということで次回はセクション2を頑張ります!