見出し画像

Rによるデータ分析を学ぶの巻:その1

統計関係はSPSSやMatlabやEXCELなどでやってきたので、特に不便はしてなかったのですが、ちょっとくらいRをやってみようかと思いたちました。ということで、一緒にRを勉強する人を募集中です!

それで、図書館にいって見繕った本『Rによるデータ分析のレシピ』舟尾 暢男著をつかって勉強していきます。他にもいろいろあるんでしょうけど、ひとまず1冊やってみる。それで大まかにやり方がつかめればオッケーとしましょう。

”◎実用的なデータ分析ができるようになりたい方
◎マーケティング、企画、営業などのビジネスパーソン、個人事業者 等が、数学の基礎知識が足りないと感じる人”

とサイトにありますので、きっと入門書という事でいいのではないかと。(勝手に思って始めます)

さて、まずはRのインストール。p.210からの方法でRやRStudioをインストールします。あれ、そういえば昔何か同じようなことをした気がするとおもってアプリケーションをみてみると、なんとRStudioがインストールされていました。たぶん、そのままで大丈夫でしょうと言うことで、そのまま運用します。(適当です)

 また上記サイトにあるダウンロードという所から、サンプルデータを落としてきます。

ではPART1からスタートです。

物語で説明していくタイプの本で、どうやら焼肉屋さんとバイトと奥さんという3人で話が進みます。カルビが売れ残るのが勿体ないので、仕入れ量を分析して、適当な仕入れにしたいという事のようです。

そこで、下準備として1月ぶんのカルビの仕入れ量データをRに取り込むわけですが、いきなりつまずきました。

library(readxl)が使えません。がーん。

いきなりやめようかと頭をよぎります。Rじゃなくてもいいし。。。

ですが、ここで逃げては先に進めません。男を見せるときだ!という事で、ググります。するとこんなサイトを発見。

どうやら、Rstudio以外にパッケージがあると便利らしく、そのインストール法が載っています。助かるー!

どうせなので、readxlパッケージだけじゃなくて、他の2つもいれちまいましょう。というわけで、

install.packages("readxl",dep=T)
install.packages("dplyr",dep=T)
install.packages("ggplot2",dep=T)

これらを打ち込んで、cmd+enterです。無事に入ったっぽいです。これでどうやら、Rの中にEXCELのファイルを読み込める様になるみたい。本当か?!

教科書はダウンロードデータをC直下のtempフォルダにいれていることを想定しているみたいだけど、こっちは全然違う場所に入れているので、パスを変えて打ち込むと無事に読み込み成功。(これって、初心者にはさっぱりなのでは???)

データの取り込みに3つの方法が書いてあって、ひとつはread_excelという関数を使う方法。もう一つは、read.csvという関数を使う方法、ラストはひたすら手でデータを打ち込む方法。なんかもうちょっと丁寧に説明しないと初心者はココで挫折しそうな。。

データ内容は、1日〜30日分のカルビの仕入れ量のデータです。それをmydataという変数に格納します。30行x2列の行列ですね。それに対して、

summary(mydata)

こんなコマンドがあるんですね。。知らなかった。さくっと、平均値、最大最小、中央値、第1・第3四分位値を出してくれます。

ここで教科書っぽく、平均値についての注意が入ります。なるほど、外れ値があると危険ですからね。それから、ひとまずデータはグラフ化しよう!と提案されます。もっともです。

ではヒストグラムを作ってみましょうか。Recipe1.2です。

p.14とp.15で完全に固まりました。作業はできるので、ちゃんとヒストグラムが出来たのですが、この関数やら、設定やらが飲み込めません。うーん、、結構、不親切。というか、できる人じゃないと意味不明。

画像1

とうわけで、こんな感じになりました。なんだかむずい。それと日本語が使えないということもわかりました。なにか設定が必要のようです。

それと、やっぱり、このサイトくらいの説明は載っけておいてほしいなとおもう。

わかったことは、この本、ちっとも初学者向きじゃないと思います。。。他の言語を知っている私なので、類推をきかせてやっていますが、結構不親切です。が、まあRの基本は知ってるよね的な前提なんでしょうかね。

追記:

p.14 でいきなり、関数を定義しちゃうんですよね。

library(ggplot2)
mybk <- function(x,min,max) seq(min,max,length.out=(nclass.Sturges(x)+1))

という感じで。推測ですが、このfunction(x,min,max)というのが関数の形で、引数に3つのデータを使うよと定義していて、seqは数列を等間隔で区切る関数だろうと。nclass.Sturgesというのは何らかの関数で数字を戻すはず。そこで、ググってみて、

seq
https://www.solima.net/r/archives/48

nclass.Sturges
http://blog.livedoor.jp/green_idea/archives/1484850.html

ということでなんとなく納得。それにしても、この教科書、ちょっとアドバンスすぎないかな。。

cut関数
https://blog.data-hacker.net/2013/05/rcut.html

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