Rの特徴的な関数を理解しよう【無料公開中】

R

こんにちは、ヤク学長です。
今回は、「Rの特徴的な関数を理解しよう」を紹介します。

⇩前回の講座がまだの方はこちらからどうぞ⇩

Rの特徴的な関数を理解しよう

Step1 : 関数の理解をもっと深めよう

関数の理解を更に深めていきましょう。
関数には、引数やArgumentと呼ばれるものが存在しています。

例:身体計測 ( “身長 : 170cm “, body_weight = 60, Grip_strength = 2)というコードがある場合、
このbody_weight = 60,Grip_strength = 2 の何か補足するような情報や「引数」や「Argument」と呼びます。

もし、このように良く分からない関数が出現し。困ったら「ヘルプ」を活用してみましょう。

ヘルプ」は関数の使い方を解説してくれているページにです。
今後、新しい関数を使うときは積極的にヘルプページを参考にしてみましょう。

今回はヘルプページの見方を学んでいきましょう。

Step2 : ヘルプファイルの見方

ヘルプファイルの見方非常に簡単です。例えば、sum関数のヘルプファイルを見る場合は、

?sum

このように「?」をつけて、この関数を実行するだけです。
ただ、ヘルプページは英語の文書となります。もし、英語が分からない場合は、ブラウザで検索し翻訳を駆使してみましょう。

実行すると以下のように、「Sum of Vector Elements」と称してヘルプページがでます。

内容は以下のようになります。引用しましたが、見るべき箇所が非常に多いですね。

Sum of Vector Elements
Description
sum returns the sum of all the values present in its arguments.

Usage
sum(…, na.rm = FALSE)

Arguments
numeric or complex or logical vectors.

Details
This is a generic function: methods can be defined for it directly or via the Summary group generic. For this to work properly, the arguments … should be unnamed, and dispatch is on the first argument.

If na.rm is FALSE an NA or NaN value in any of the arguments will cause a value of NA or NaN to be returned, otherwise NA and NaN values are ignored.

Logical true values are regarded as one, false values as zero. For historical reasons, NULL is accepted and treated as if it were integer(0).

Loss of accuracy can occur when summing values of different signs: this can even occur for sufficiently long integer inputs if the partial sums would cause integer overflow. Where possible extended-precision accumulators are used, typically well supported with C99 and newer, but possibly platform-dependent.

Examples
Run examples

Pass a vector to sum, and it will add the elements together.

sum(1:5)
Pass several numbers to sum, and it also adds the elements.

sum(1, 2, 3, 4, 5)
In fact, you can pass vectors into several arguments, and everything gets added.

sum(1:2, 3:5)
If there are missing values, the sum is unknown, i.e., also missing, ….

sum(1:5, NA)

上記がSumのヘルプファイルの項目です。非常に長いので見るべきポイントをご紹介します。
 

 Description
 Usage
 Arguments
 Details
 Examples
 
この5つは最低限、目を通してましょう。理由を一つずつ解説します。

【Description】

Descriptionには、その関数が何をする関数なのかの説明があります
「sumのargumentにあるものの全ての和を返す」
と記載されています。

【Usage】

Usageはどのように利用するかの記載があります
「sum(…, na.rm = FALSE)」
という使い方で、

【Arguments】

Argumentsには、Usageでしめされている、sum関数の中身
について記載されています。
「… : numeric or complex or logical vectors.」

【Details】

Detailsには、より詳しくArgumentsの内容や注意が書かれています。

【Examples】

書いてあるスクリプトは実行すると、関数がどのような動作をするかイメージできます。
もし、関数のイメージがイメージできない場合は、ここに記載されている例を参考に動かしてみましょう。

Step3 : Examplesの解説

Examplesを見ても良く分からないという声をいただいたので、詳しく解説します。
先ほどの「Sum」のExampleは以下の5つの例文が記載されています。

①Pass a vector to sum, and it will add the elements together.
sum(1:5)

②Pass several numbers to sum, and it also adds the elements.
sum(1, 2, 3, 4, 5)

③In fact, you can pass vectors into several arguments, and everything gets added.
sum(1:2, 3:5)

④If there are missing values, the sum is unknown, i.e., also missing, ….
sum(1:5, NA)

⑤ … unless we exclude missing values explicitly:
sum(1:5, NA, na.rm = TRUE)

【解説】

まず、① 1:5とは、1から5までの数字ベクトルを表します。
②c(1,2,3,4,5)のベクトルでの記載と同じであり、1から5までの数字ベクトルを表します。
つまり、①sum(1:5) と②sum(1,2,3,4,5) は同じ結果になります。

※ここで、重要な点があります。
 Usage: sum(…, na.rm = FALSE)
 Arguments : … : numeric or complex or logical vectors.
 上記のように「…」の部分が、記載されていることに気がつくでしょうか。
 「…」の記載があれば、複数のArgumentが可能という意味になります。
 例:numericやcomplexを入れることができます。

③が示しているものは、
sum(1:2, 3:5)で、
sum(c(1,2),c(3,4,5))

と同じ意味ですね。変数に代入し、
v1 <- c(1,2)
v2 <- c(3,4,5)
sum(v1,v2)
というように2つのベクトルの総和をもとめることも可能です。

④sum(1:5,NA)では、ベクトルの中に欠損値が含まれています。
この場合は、NAが返ってくることが掛かれています。

NAが返ってくる場合、⑤のように、
sum(1,2,3,4,5,NA, na.rm=TRUE)
na.rm argumentに対しTRUE値を与えることで欠損値であるNAを無視し、
和として返すことができるようになります。

「TRUEやFalse」は「Boolean型」と呼ばれるもので、返り値を真か偽であるか返してくれます。

要するに、もし、初期値が与えられていないArgumentがあった場合は、na.rmの入力が必要になりますので注意しましょう。

このように、ヘルプを確認することでRを使いこなせるようになります。
見方にも慣れてきたところで、次は、sum以外の関数を使ってみましょう。

Step3 : 他の関数を使ってみよう

今回、使う関数はsummary(), unique(), sort()の3つです。
特に使われる関数になりますので、ぜひサクッと覚えてしまいましょう。

【summary】

?summary

このヘルプファイルを呼び出してExamplesの内容を確認してみましょう

summary(attenu, digits = 4) -> summary.data.frame(…), default precision
summary(attenu $ station, maxsum = 20) -> summary.factor(…)
lst <- unclass(attenu$station) > 20 logical with NAs
summary.default() for logicals — different from *.factor:
summary(lst)
summary(as.factor(lst))

この記述の中の「attenu」というものが分からないかもしれませんね。
これは、Rに最初から組み込まれているデータです。

summary(attenu)

は、データフレームやベクトルを集計してくれる関数です。
集計したいときに使う関数だという事を覚えましょう。

【unique】

?unique

このヘルプファイルを呼び出すと、

x <- c(3:5, 11:8, 8 + 0:5)
x
(ux <- unique(x))
(u2 <- unique(x, fromLast = TRUE)) different order
stopifnot(identical(sort(ux), sort(u2)))

length(unique(sample(100, 100, replace = TRUE)))
approximately 100(1 – 1/e) = 63.21

unique(iris)

と記載されていますね。

unique関数は、
vec <- c(1,1,1,1,2,2,2,2,2)
unique(vec)
このように重複されているものをベクトルの中から重複をなくして
「ユニーク」な要素をもつベクトルを作ってくれるという関数です。

【sort】

?sort

ベクトルの順番を昇順・降順に並び替える関数です。

vec
unique(vec)
sort(unique(vec))

先ほど作成したvecをユニークにした順番をソートしてくれます。

使い方として、sort(x, decreasing = FALSE, …)とあります。
decreasingのargumentには初期値が与えられていて、
説明では、logical. Should the sort be increasing or decreasing?とあります。
logicatとは、TRUEかFALSEをいれられます。

sort(unique(vec), decreasing=FALSE)
sort(unique(vec), decreasing=TRUE)

というように順番が入れ替わっていますね。
以上が、特に使われる関数のご紹介になります。

Step3 : まとめ

ここまでR言語という統計を主に専門とするプログラミング言語の
学習を進めたこと、本当にお疲れさまでした。

ここまでお伝えした内容を振り返ります。
・R studio の基本的な使い方
・プロジェクトの作り方
・変数の基本知識
・ベクトルの作成の仕方
・データフレーム
・パッケージについて
・ヘルプページの見方
について解説してきました。


ここまでの講義を通して、Rの基本的な操作イメージが思い出せるようになったのではないでしょうか。もし、イメージが思い浮かばなければ、是非該当する部分を復習してみてください。

本コースの目的は、Rでデータ分析を行うための初級編として、基本的な操作の習得を目的としています。今回までに、最低限知っておく必要がある知識だけを盛り込んでいます。

それでは、これから「データ分析_初級編」に入っていきます。
本格的なRでのデータ分析はこれからです。
一緒にデータ分析を通じて医療データの分析を楽しんでいきましょう。

最新情報をチェックしよう!