読者です 読者をやめる 読者になる 読者になる

山羊の午後

研究関係の備忘録。

Rのはじめ方 3:スクリプト入門

とりあえずのR

スクリプト

 ここでは「なんらかのコマンドを書いたテキストファイル」をスクリプトとよびます。
 Rの便利なところは、一度かいたコマンドを.txtファイルもしくは.Rファイルとして保存することで、すぐに同じ解析、グラフを再現できるところです。
 例えば、前に作ったグラフを新しいデータで作り直すとき、すでに作ってあるスクリプトの「データの読み込み部分」だけを変更すれば、簡単に同じグラフを作ることが出来ます。

スクリプトファイルをつくる

  • 「ファイル」から「新しいスクリプト」をえらぶ
    • もしくは Ctrl + n
  • Rエディタ ウィンドウが開く
  • 保存は.Rファイル形式で行います(テキストファイルとしてメモ帳などの他のソフトでも開くことができる)
    • .txtファイルで保存してもとりあえず問題はない。好みで。

スクリプトをひらく

  • メニューバーの「ファイル」から「スクリプトを開く」を選択
  • デフォルトではRファイル(.R)のみが表示がされているので、ファイル名の右横の欄で「All files」を選択します。
  • 新しいウィンドウ「Rエディタ」が開き、ファイルの中身が表示されます。


 前回 history()から保存したファイルを開きましょう。同じ様に、アヤメのデータ iris を読み込み、グラフを作ってみます。

data(iris)
head(iris)
plot(iris$Species, iris$Sepal.Length)

 

  • エディタウィンドウの中で、この三行をマウスで選択します。(もしくはシフトキー+矢印で選択)
  • 右クリックから「カーソル行もしくは選択中のRコードを実行」を選択します。
  • コンソールに命令文が入力され、グラフが出ます。
    • 右クリック以外にもメニューバーの「編集」からもコードの実行ができます。
    • また、ショートカットキーとして Ctrl+R が利用できます。
    • すべてを選択(Ctrl+A)して、Ctrl+R でエディタ内全体を繰り返すことができます。

スクリプトの書き方

関数名(パラメータ=数値, パラメータ="文字")

  • 値の間はコンマ , で区切る。()内で改行してもよい。
    • 関数ごとに設定できるパラメータの種類と基本の並び順が決められています。詳細はhelp(関数名)で見ることが出来ます。
    • パラメータ名を省略して値を入力すると、基本の並び順にそって関数が実行されます。
    • 値の順番を変更して入力する際は、パラメータ名をそれぞれ書く必要があります。
    • パラメータによって入力できる値の形式も決まっています。数字のみか、文字のみか、などもマニュアルを見て確認します。
    • パラメータに複数の値を指定するときはベクトル c(値1,値2,値3) と書きます。

コメント #

  • 関数の使い方のメモなどを書き込んでおくと、あとでみてわかりやすくなります。
  • #から改行までの記述は実行されない。()の中で改行と組み合わせて使える
plot(x, y, #コメント  ここは実行されない
  パラメータ=1, パラメータ =2 ) # コメント
# 関数は 終わりを示す ) がくるまでスタートしない。

文字の入力 "Hello world"

  • 文字を値として入力するときは""で囲む。

ベクトル c(1,2,3)

  • 複数の値の集合。関数c()にコンマ,で区切って入力する。

値の判定式 A > B

  • AはBより大きいか? と聞く。答えは真偽値TRUE/FALSEで返ってくる。
    • A
    • A==B AとBは同じか? A=Bは代入なので、間違えないように。

代入 A <- B

  • 変数Aに値Bを代入する。以下の書き方でも同じ。
    • B -> A
    • A = B
変数
""で囲まれていない文字列。なにか値が代入されたもの(箱、ラベルのような概念)。
  • 繰り返し使う値に名前を付けて保存し、名前を使って値を呼び出します。
  • このとき値に付けた名前を変数とよび、変数に値を代入する、と表現します。
  • 変数aに値6を代入するには、代入記号「 <- 」を使って a <- 6 と書きます。
  • 変数名には半角スペースが使えないため、ピリオド「.」で区切ったりします。
  • 変数名は大文字と小文字で区別されます。
  • もともとRが使っている関数名を変数として上書きすることが出来てしまうので、注意。
    • 例 mean <- c(x,x,x,)とすると、関数mean()が入力した値で上書きされる。
    • 直すには、remove(mean) で変数を削除する。変数名が使えるかは、変数名をコンソールに入力してみるといい。

代入の例

 身長と体重を入力してみます。

height <- 172 # cm
weight <- 72 # ㎏

 コンソールに「height」と入力してエンターをおすと下記のように代入された値が表示されます。

> height
[1] 172

  • 左端の[1]は一番目の値であることを示します。

 二つの値をつかって、BMIを計算してみます。

# BMI=体重÷身長(m)÷身長(m)
BMI<-weight/(height*0.01)/(height*0.01)
BMI

 代入した値を変数名で呼び出して計算しています。
 では次に weight に三日分の体重を代入し、それぞれのBMIを計算してみます。

height <- 172 # cm
weight <- c(72.0, 71.6, 71.0) # ㎏
BMI<-weight/(height*0.01)/(height*0.01)
BMI

複数の値を代入するときには、c() をつかい、値はコンマ , で区切ります。
結果はこのように返されます。半角スペースが値の区切りとして表示されます。

[1] 24.33748 24.20227 23.99946

体重weightに代入されたすべての値に対して、BMIの計算式が繰り返し適用されました。

ではBMIの変化をプロットするグラフを書いておきましょう。

weight <- c(72.0, 71.6, 71.0) # ㎏

height <- 172 # cm
BMI<-weight/(height*0.01)/(height*0.01)

plot(BMI, type="b")

このスクリプトを保存しておけば、weightに代入する値を追加するだけで、毎日、BMIの変化をグラフ化できます。簡単ですね。

自分に必要なスクリプトを書けるようになることで、Rは一気に便利になります。
次は、スクリプトを書きこなすために、Rの基本ルールをおさえましょう。