■RStudioを使ったプログラミング
▼プログラミングの基礎
R の基本概念に親しんでいただきます。
関数やコメント、変数やデータ型、 ベクトル、パイプ演算子などです。
コメント
#をつける
変数の例
first_variable <- “This is my variable.”
ベクトル
ベクトルとは、簡単に言うと R の配列に 格納された同じ型のデータを一列に並べた
データ構造、またそのグループのことです。
ベクトルは Combine、つまり結合を示す 関数で作ることができます。
パイプ
パイプ演算子は、複数の演算子の並びを 表現するための R のツールです。
パイプは、%>% で表現されます。
パイプは、ある関数の出力を 別の関数に当てはめるために使用します。
▼R におけるベクトルとリスト
データ構造とはデータを整理し、保存するためのフォーマットです。
ベクトル
・アトミックベクトルとリスト
データフレーム
行列(マトリックス)
配列
▼R で日付や時刻を扱う
tidyverse と lubridate のパッケージを読み込む
日付や時刻データを処理する前に、tidyverse と lubridate の両方をインストールしましょう。lubridate は tidyverse パッケージ群に含まれます。
まず、RStudio を開きます。
まだ tidyverse をインストールしていない方は install.packages() 関数を使ってインストールしましょう。
install.packages("tidyverse")
次に library () 関数を使用して tidyverse と lubridate パッケージをロードします。
現在使用している R セッションで tidyverse を利用するにはまず最初に tidyverse をロードしましょう。
library(tidyverse)
次に、lubridate パッケージを読み込みます。
library(lubridate)
これで、lubridate パッケージのツールを使う準備が整いました。
▼日付や時刻データを扱う
ここでは、R における日付や時刻のデータ型と、文字列型を日時型に変換する方法について説明します。
型
R で扱える、日付や時刻のデータ型には下記の 3 種類があります。
日付 ("2016-08-16")
時刻 (“20:11:59 UTC")
日時 ("2018-03-31 18:15:48 UTC")
▼文字列から変換する
日付や時刻のデータは、多くの場合、文字列で表記されます。lubridate のツールを使えば、文字列を日付や時刻に変換することができます。これらのツールは自動的に日付/時刻のフォーマットをします。まずは、日付に含まれる年、月、日の順番を確認します。次に、それぞれ y, m, d の文字を同じ順番に並べます。これが、日付を解析する lubridate 関数になります。例えば、2021-01-20 という日付の場合、ymd という順序で使います。
ymd(“2021-01-20”)
上記の関数では、次のように yyyy-mm-dd 形式で日付を返します。
> [1] “2021-01-20”
どのような順序でも同じように機能します。例えば、月、日、年としてみましょう。R は、以下のように yyyy-mm-dd 形式で日付を返します。
mdy(“January 20th, 2021”)
> [1] “2021-01-20”
次は、日、月、年としてみましょう。R は yyyy-mm-dd 形式で日付を返します。
dmy(“20-Jan-2021”)
> [1] “2021-01-20”
この関数は引用符で囲まれていない数値を自動的に yyyy-mm-dd 形式に変換することもできます。
ymd(20210120)
> [1] “2021-01-20”
▼日時コンポーネントを作成する
ymd() 関数とその派生関数でも、日付を作成できます。日付から日時を作成するには、アンダースコアと h, m, s (時、分、秒) のうち、ひとつ以上を関数名に追加します。
ymd_hms(“2021-01-20 20:11:59”)
> [1] “2021-01-20 20:11:59 UTC”
mdy_hm(“01/20/2021 08:01”)
> [1] “2021-01-20 08:01:00 UTC”
▼オプション:既存の日時オブジェクトから切り替える
最後に、日付と日時とを切り替える方法についてご紹介します。
as_date() 関数を使用すると、日時を日付に変換できます。例えば、関数の括弧の中に現在の日時として now() を入れると以下のように日付を返します。
as_date(now())
> [1] “2021-01-20”
▼データフレーム
データフレームとは何か、どのように作成するのかについて理解を深めましょう。
データフレームとは、R でデータを保存・分析する最も一般的に使われるデータ構造のひとつであり、表計算ソフトや SQL のテーブルに似た列の集まりです。
▼オプション: 行列(マトリックス)について
マトリックスは、行と列を持つ 2 次元のデータ エレメント(データ要素)の集合体です。これに対して、ベクトルは 1 次元のデータエレメントの列です。しかしベクトルと同様に、マトリックスも 1 つのデータ型しか持つことができません。すなわち、論理型と整数型の両方を含めることはできません。
R でマトリックスを作成するには、matrix() 関数を使用します。matrix() 関数には、括弧の中に 2 つの主な引数を入力します。まずはベクトルを入力します。
行数または列数を指定するには、nrow = または ncol = というコードを使用します。
例えば、3~8 の値を含む 2×3 (2 行 ×3 列) のマトリックスを作成する場合を考えてみましょう。まず、その一連の数値を含むベクトルを入力します。
例::c(3:8)
次にカンマを入力します。最後に、行の数を指定するために nrow = 2 と入力します。
matrix(c(3:8), nrow = 2)
この関数を実行すると、R は数値 3、4、5、6、7、8 を含む 3 列 2 行の行列(通常「2×3」と呼ばれる)を表示します。R はベクトルの最初の値 (3) をマトリックスの一番左の行、一番上の列に配置し、左から右へ順番に続けます。
[,1] [,2] [,3]
[1,] 3 5 7
[2,] 4 6 8
また、行数 (nrow = ) の代わりに列数 (ncol = ) を指定することもできます。
matrix(c(3:8), ncol = 2)
関数を実行すると、R は自動的に行数を推測します。
[,1] [,2]
[1,] 3 6
[2,] 4 7
[3,] 5 8
▼演算子と計算
▼論理演算子と条件文
▼コードを読みやすくするために
▼R パッケージというプレゼント
▼R パッケージ を活用する
▼ようこそ、Tidyverse へ
✔ ggplot2 3.4.0 ✔ purrr 0.3.5
✔ tibble 3.1.8 ✔ dplyr 1.0.10
✔ tidyr 1.2.1 ✔ stringr 1.4.1
✔ readr 2.1.3 ✔ forcats 0.5.2
▼Tidyverse をインストールする
Vignette とは、R パッケージのドキュメントであり、いわば説明書です。
例えば、ggplot2 の説明書を参照したい場合 、browseVignettes(“ggplot2”)
▼Tidyverse の詳細
Tidyverse のコアパッケージ
ggplot2:プロット図を作成する際につかう
tidyr:データをクリーニングする。
readr:データセットを読み込む
dplyr:データ操作を扱う関数集
tibble:データフレームの 改善のための保持形式
purrr:関数とベクトルを扱いコードを書きやすくする
stringr:文字列を 簡単に扱えるようにするための関数
forcats:Factor の一般的課題を 解決するためのツールを提供するものです。
少し復習すると、Factor とはデータ値が 制限される場合に、国や年次といった
有限のグループに基づいてR でカテゴリデータを格納するもので因子型ともいいます。
▼パイプ演算子を使う
パイプ演算子は複数の演算子のシーケンス、つまり
並びを表現するための R のツールです。
%>% (日本語で「それから」)
各行の末尾につける
▼コナー:コーディングのヒント
■ウィークリーチャレンジ2
1回目75%
2回目84.38%で合格。
コメント