123 * 456 - 789[1] 55299
(2^2^5 + 1) / 641 # 羃乗の優先順位に注意[1] 6700417
sin(pi/3)^2 + cos(pi/3)^2[1] 1
log(exp(2)+1) # 適当な数学関数の例.好きな計算を実行する[1] 2.126928
第1講 練習問題 解答例
以下の計算を行う R Script/Quarto を作成し保存しなさい.
新規ファイルを作成し,以下をエディタで実行する. Quarto の場合は chunk を作成して,その中に記述する必要がある.
123 * 456 - 789[1] 55299
(2^2^5 + 1) / 641 # 羃乗の優先順位に注意[1] 6700417
sin(pi/3)^2 + cos(pi/3)^2[1] 1
log(exp(2)+1) # 適当な数学関数の例.好きな計算を実行する[1] 2.126928
コンソールで実行した場合は History タブから実行したコマンドを選択し, ファイルにコピーすることができる.
パッケージを導入して,含まれている関数について調べなさい.
e1071 をインストールするkurtosis() (尖度) を調べるkurtosis() を呼び出すパッケージ群の導入を行いなさい.
tidyverse をインストールするパッケージのインストールはRStudioのUIを用いることを推奨する.
e1071/tidyverse をインストールコンソールからインストールする場合は以下を実行すれば良い.
install.packages("e1071")install.packages("tidyverse")利用するには関数 library() を用いて読み込む.
library(e1071) # パッケージの読み込み
help(kurtosis) # 関数を調べる
kurtosis(Nile) # 関数を用いる[1] -0.3585392
datasets::Nile は起動時に自動的に読み込まれるデータセットの一つ. help(Nile) でデータの概要を知ることができる. また plot(Nile) で簡単な視覚化ができる.
以下に指定する操作を行いなさい.
次の表に対応するデータフレームを作成しなさい
| name | math | phys | chem | bio |
|---|---|---|---|---|
| Alice | 90 | 25 | 65 | 70 |
| Bob | 80 | 50 | 100 | 50 |
| Carol | 70 | 75 | 70 | 30 |
| Dave | 60 | 100 | 40 | 80 |
| Eve | 50 | 80 | 75 | 100 |
データフレームの要素の選択を試みなさい
各項目が同じ長さのベクトルを並べて作成すればよい.
library(tidyverse) # 関数 tibble() を利用するためにパッケージを読み込む
foo <- tibble( # 変数名は自由に決めてよい
name = c("Alice", "Bob", "Carol", "Dave", "Eve"),
math = c(90, 80, 70, 60, 50),
phys = c(25, 50, 75,100, 80),
chem = c(65,100, 70, 40, 75),
bio = c(70, 50, 30, 80,100))
print(foo) # 中身を表示# A tibble: 5 × 5
name math phys chem bio
<chr> <dbl> <dbl> <dbl> <dbl>
1 Alice 90 25 65 70
2 Bob 80 50 100 50
3 Carol 70 75 70 30
4 Dave 60 100 40 80
5 Eve 50 80 75 100
例えば以下のような操作を行うことができる.
foo[2,3] # 特定の要素を数値で参照する# A tibble: 1 × 1
phys
<dbl>
1 50
foo[2,"phys"] # 列を名前で参照する (上記と同じ結果)# A tibble: 1 × 1
phys
<dbl>
1 50
foo[3,] # 特定の行を表示 (データフレームになる)# A tibble: 1 × 5
name math phys chem bio
<chr> <dbl> <dbl> <dbl> <dbl>
1 Carol 70 75 70 30
foo["bio"] # 特定の列を表示 (データフレームになる)# A tibble: 5 × 1
bio
<dbl>
1 70
2 50
3 30
4 80
5 100
foo[,"bio"] # 上記と同じ結果# A tibble: 5 × 1
bio
<dbl>
1 70
2 50
3 30
4 80
5 100
foo[["bio"]] # ベクトルとして取り出す (リストとしての処理)[1] 70 50 30 80 100
foo$bio # 上記と同じ結果[1] 70 50 30 80 100
上記のように同じ要素を選択してもデータ構造が異なる場合があるので注意する.