ハーバード大のWEB講座でRを使ったデータサイエンス入門をやってみる Part.4 Vectorsで演算


過去の記事はこちらになります。

第一回
第二回
第三回

これからVectorで演算をやっていくことになります。まあ本格的といっても入門ですが...。

1.Vectorを組み合わせてみる

前回まではVectorやデータフレームの単体を並べ替えたりデータを抽出しただけでした。例えば以下のように、人口が最大の州を抽出するとか

> murders$state[which.max(murders$population)]
[1] "California"

Vectorに対する算術演算はエレメントごとに行います。例えばインチ単位の身長のVectorをセンチ単位に変換するには、以下のようになります。

#inch 単位の身長データ
> heights <- c(69,62,66,70,70,73,67,73,67,70)
#inch → cm に変換
> heights * 2.54
 [1] 175.26 157.48 167.64 177.80 177.80 185.42 170.18 185.42 170.18 177.80

これを先ほどの殺人に当てはめてやってみましょう。統計っぽく10万人あたりの殺人件数を計算してみます。結果は多い順で表示します。

> murder_rate <- murders$total/murders$population*100000
> murders$state[order(murder_rate,decreasing = TRUE)]
 [1] "District of Columbia" "Louisiana"            "Missouri"            
 [4] "Maryland"             "South Carolina"       "Delaware"            
 [7] "Michigan"             "Mississippi"          "Georgia"             
[10] "Arizona"              "Pennsylvania"         "Tennessee"           
[13] "Florida"              "California"           "New Mexico"          
[16] "Texas"                "Arkansas"             "Virginia"            
[19] "Nevada"               "North Carolina"       "Oklahoma"            
[22] "Illinois"             "Alabama"              "New Jersey"          
[25] "Connecticut"          "Ohio"                 "Alaska"              
[28] "Kentucky"             "New York"             "Kansas"              
[31] "Indiana"              "Massachusetts"        "Nebraska"            
[34] "Wisconsin"            "Rhode Island"         "West Virginia"       
[37] "Washington"           "Colorado"             "Montana"             
[40] "Minnesota"            "South Dakota"         "Oregon"              
[43] "Wyoming"              "Maine"                "Utah"                
[46] "Idaho"                "Iowa"                 "North Dakota"        
[49] "Hawaii"               "New Hampshire"        "Vermont"     

# 10万人あたりの殺人件数の全国平均 
mean(murder_rate)
[1] 2.779125

10万人当たりの殺人件数でいうとカリフォルニアは14位になりました。ちなみに全国平均を出すと10万人あたり2.7人。2億5000万くらいだったので年間7000人くらいが殺人事件の被害者になっているようです。

この後のテストは簡単でした。どっちかというとdefineしなさいとか言われた方が意図わかんなくて困りました。この章はちょっと短すぎるのであとで何か足すかもしれません。でも今日のところは2章終わってしまったのでこのページは終わりにします。第3章では本格的にデータセットを操作したりグラフを作ったりするみたいです。長い序章だった...。

第五回へ続きます。