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() を利用するためにパッケージを読み込む
<- tibble( # 変数名は自由に決めてよい
foo 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
例えば以下のような操作を行うことができる.
2,3] # 特定の要素を数値で参照する foo[
# A tibble: 1 × 1
phys
<dbl>
1 50
2,"phys"] # 列を名前で参照する (上記と同じ結果) foo[
# A tibble: 1 × 1
phys
<dbl>
1 50
3,] # 特定の行を表示 (データフレームになる) foo[
# A tibble: 1 × 5
name math phys chem bio
<chr> <dbl> <dbl> <dbl> <dbl>
1 Carol 70 75 70 30
"bio"] # 特定の列を表示 (データフレームになる) foo[
# A tibble: 5 × 1
bio
<dbl>
1 70
2 50
3 30
4 80
5 100
"bio"] # 上記と同じ結果 foo[,
# A tibble: 5 × 1
bio
<dbl>
1 70
2 50
3 30
4 80
5 100
"bio"]] # ベクトルとして取り出す (リストとしての処理) foo[[
[1] 70 50 30 80 100
$bio # 上記と同じ結果 foo
[1] 70 50 30 80 100
上記のように同じ要素を選択してもデータ構造が異なる場合があるので注意する.