Top | Profile | R | Intro to R | Workshop | Statistics | TeX

 

Top > 無料統計ソフトRで心理学 > 雑多な知識: 6. Rによる関数の作り方

無料統計ソフトRで心理学

雑多な知識: 6. Rによる関数の作り方

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目的

Rで「数式に忠実なプログラムを一から書いてみる」と意外に統計学に対する抵抗感が薄れ,理解が促進されることを示します。

 

例題

対角の指数であるBMI(Body Mass Index)を計算するプログラムを作成します。BMIの計算式は,体重(kg)/身長(m)^2です。BMIの解釈は,以下の表のようになります。

やせ 18.5未満
適正 18.5〜25未満
肥満(1度) 25〜30未満
肥満(2度) 30〜35未満
肥満(3度) 35〜40未満
肥満(4度) 40以上

参考URL:体脂肪・BMI計

 

Rプログラム

Step1: 入力する値を定める

height <- 170
weight <- 62

#身長を仮に,170cm
#体重を仮に,62kgと考える

 

Step2: 計算式を定める

(statistic <- weight/(height/100)^2)

#身長の単位を,cmからmに変えるために身長を100で割る

 

Step3: function(){計算式}でStep2の計算式を括る

function( ){
statistic <- weight/(height/100)^2
}

 

 

Step4: 計算式の右辺に出てくる変数をfunction()に代入する

function(weight, height){
statistic <- weight/(height/100)^2
}

 

 

Step5: 算出したい変数をreturn()で括る

function(weight, height){
statistic <- weight/(height/100)^2
return(statistic)
}

 

 

Step6: 関数名を定める

BMI <- function(weight, height){
statistic <- weight/(height/100)^2
return(statistic)
}

 

 

Step7: 正しく動作するかチェックする

BMI(weight=62, height=170)
> [1] 21.45329

 

 

Step8: 条件分岐を入れる

BMI <- function(weight, height){
statistic <- weight/(height/100)^2
if(statistic < 18.5){
message <- "やせ"
}
else if (statistic <25){
message <- "適正"
}
else if (statistic <30){
message <- "肥満(1度)"
}
else if (statistic <35){
message <- "肥満(2度)"
}
else if (statistic <40){
message <- "肥満(3度)"
}
else{
message <- "肥満(4度)"
}

return(statistic)
}

 

 

Step9: 算出したい変数をdata.frame()で括り,resultと命名する.さらに,return()内は,resultに変更する

BMI <- function(weight, height){
statistic <- weight/(height/100)^2
if(statistic < 18.5){
message <- "やせ"
}
else if (statistic <25){
message <- "適正"
}
else if (statistic <30){
message <- "肥満(1度)"
}
else if (statistic <35){
message <- "肥満(2度)"
}
else if (statistic <40){
message <- "肥満(3度)"
}
else{
message <- "肥満(4度)"
}
result <- data.frame("BMI"=statistic, "判定"=message)
return(result)

}

 

 

Step10: 正しく動作するかチェックする

BMI(weight=62, height=170)
> BMI 判定
> 1 21.45329 適正

 

 

 

自習を深めたい人は

以下の2つのURLを熟読するだけで大丈夫です

このBMIプログラムを,複数の被験者を同時に算出できるように書き換えてみると,更に勉強になります。

目次: 雑多な知識

Rの導入に関するポイントを書いています。

  1. テキストエディタを使用する
  2. 潜在変数を扱うモデルはRでは,今のところ使わないでおこう
  3. Rを学習する意義とデメリット
  4. Rを学習する前に…
  5. 「Rは大変だから勉強しないでおこう」と思う前に…
  6. Rによる関数の作り方
  7. Rによるシミュレーション

 

 

What's New

   
 

目次: 無料統計ソフトRで心理学

勉強会

練習

関数の調べ方

雑多な知識

  1. テキストエディタを使用する
  2. 潜在変数を扱うモデルはRでは,今のところ使わないでおこう
  3. Rを学習する意義とデメリット
  4. Rを学習する前に…
  5. 「Rは大変だから勉強しないでおこう」と思う前に…
  6. Rによる関数の作り方
  7. Rによるシミュレーション

R雑記

  1. 海外でのRの普及状況
  2. データマイニング
  3. コンジョイント分析
  4. 欠損値処理
  5. 効果量
  6. 潜在変数を仮定するモデル
  7. Rの教育
  8. メタ分析
  9. 心理学におけるRの普及
  10. 2005年度の普及
  11. Rを薦める・薦めない
  12. 心理学におけるRの普及II
  13. 教科書,マニュアルを読むこと
  14. 2006年度の普及
  15. 統計学 (R) の勉強会
  16. 反R派・信仰派?
  17. Rと論文
  18. How to 学習
  19. 統計ユーザーとしての基準
  20. RとOS/ブラウザ
  21. 2007年度の普及
  22. 初学者が陥りやすい罠
  23. Rを薦める・薦めないII
  24. 心理学におけるRの普及III
  25. キャリアパスと統計学
  26. 医学における検定力,効果量,区間推定
  27. 精神科領域のためのRパッケージ
  28. Rによる論文の審査/印刷期間の管理図
  29. 精神科領域におけるデータ解析環境Rの使用論文
  30. 統計学 (R) の勉強会 (研究会) II
  31. ポスドク問題と統計学
  32. 5年後のあなたへ
  33. データサイエンティスト一考

リンク集

 

 

 

 

 

 

 

 

 

 

 

 

 
 

著者: 奥村泰之 (Curriculum Vitae)
所属: 一般社団法人 臨床疫学研究推進機構 代表理事
e-mail: yokumura @ blue.zero.jp
Researchmap: http://researchmap.jp/yokumura/
ResearchGate: https://www.researchgate.net/profile/Yasuyuki_Okumura/
Google Scholar: http://scholar.google.com/citations?hl=en&user=c9qyzRkAAAAJ
facebook: http://facebook.com/okumura.yasuyuki
Twitter: http://twitter.com/yachu93