借金エンジニア

借金エンジニアのブログです。

【R言語】関数を作る


スポンサードリンク

おはようございます。こんにちは。こんばんは。

借金エンジニアです。

今日はR言語で関数を作ってみます。

f:id:debtengineer:20170619185926p:plain

関数とは?

関数といえば、数学で習ったy=x+1とかy=2xとか、xとyを使った数式が思い浮かぶ人が多いと思います。(少なかったり。。。)
xに数を入れると、自動的にyの値が決まるような数式を関数と呼んでいたと思います。
詳細はWikipedia様に聞いてください。

関数 (数学) - Wikipedia

R言語における関数も同じです。

関数に値を入れると、値をいろいろ処理して、結果を返してくれるものが関数です。

標準の関数

R言語では標準で関数がたくさん用意されています。
入れた値の合計を返してくれる「sum」、入れた値の平均を返してくれる「mean」など、数え切れないほど関数が用意されています。(たぶん。。。数えたことはないです。。。)

> sum(1,2,3,4,5,6,7,8,9,10)
[1] 55
> 
> x <- c(1,2,3,4,5,6,7,8,9,10)
> 
> mean(x)
[1] 5.5
> 

こんな感じで最初から使える標準の関数があります。(meanは数値をそのまま入れられなかったので、ベクトルを作って、そのベクトルを値として入れています。)

関数に入れる値を引数(ひきすう)、関数から返ってくる結果を戻り値と呼びます。 (借金エンジニアは引数のことを「いんすう」と呼んでいた時期がありました笑)

関数を作る

標準の関数としては用意されていないような処理をさせたい場合、独自のマイ関数を作ることができます。
たとえば、「引数の合計+平均値」が知りたい場合、おそらく、そんな関数は標準では用意されていないはずなので、そんな時は「引数の合計+平均値」を返してくれる関数を作ってしまいましょう。

R言語では関数をfunction(引数){処理}という書式で作ります。 引数にはベクトルを入れることを前提として、「引数の合計+平均値」をこんな感じで作ります。

> fx <- function(x){
+     sum_x <- sum(x)
+     mean_x <- mean(x)
+     result <- sum_x + mean_x
+     return(result)
+ }
> 
> a <- c(1,2,3,4,5,6,7,8,9,10)
> 
> fx(a)
[1] 60.5
> 

関数を作り、引数のベクトルを作り、作った関数に引数を入れて結果を確認するまでを一気にやってみました。
関数を作る時に{}の中が複数行になっていますが、これはShift+Enterで改行しています。
Enterだけだと、Enterを押したところまでで関数が確定してしまいますので、Shift+Enterで改行してください。

関数の戻り値はreturn()という書式で定義します。

簡単ですね♪

こんな計算なら関数を作るまでもありませんが、簡単なことから実践することで理解が深まると思いますので、まずは簡単な処理をする関数から作ってみましょう。

おわりに

いかがでしたでしょうか?

関数が作るのはプログラムを作る第一歩、そんな感じがしますね♪
簡単な計算をする関数でも、想定通りに動くものが出来ると、感動、まではいかなくても、喜びを味わえます。
今回作った関数は引数に値を直接指定していますが、Excelのファイルや、CSV形式のファイルを引数に指定して、そのファイルの中身を計算させる関数なんかも作れるので、日々の業務で数値の処理をしている方にはR言語はオススメです。
大学での研究なんかにも使えると思います。
自分が学生のころにR言語のことを知っていたら、Cなんか使わずR言語を選んだだろうな〜と思うぐらいです。

興味を持たれた方、ぜひ、R言語にチャレンジしてみてください!

R言語の始め方は下記記事をご参照ください。

www.shakkinengineer.com