rm(list = ls())
はじめよう!R
自己紹介
- 小杉考司(こすぎこうじ)
- 生年月日:1976.1.17(117はいい数字)
- 専修大学人間科学部 教授 博士(社会学)
- 担当講義;心理学データ解析基礎,心理学データ解析応用
- 専門分野
- 心理尺度の作り方,使い方
- 多変量解析(因子分析,多次元尺度構成法),統計モデリング
- 統計パッケージ開発;テスト理論用パッケージexametrika
Rの紹介
- R言語はオープンソースの統計解析環境
- 豊富な統計手法とグラフィックス機能
- 無料で利用可能で継続的に発展中
- 拡張パッケージが充実(CRAN, Bioconductor等)
- データサイエンス・統計分析の標準ツールの一つ
- RStudioはRをより使いやすくする統合開発環境(IDE)
- コード編集、実行、可視化が一画面で完結
- プロジェクト管理機能で作業を整理
- Rmarkdown/Quartoによる再現可能な分析レポート作成
Rのはじめかた
SPSSやSASなどの統計ソフトをアンインストールしますCRAN
(しーらん)と検索します。The Comprehensive R Archive Networkというサイトが出てくるはずです。- 自分のOS/CPUに合ったページから,最新版をダウンロードします。現在はR4.5.0になります(2025/04/11にupdate!)。
- 指示に従ってインストール!「次へ」を連打するだけでいいです。簡単ですね!
Mac用パッケージマネージャHomebrew
MacにはパッケージマネージャHomebrewというアプリがあり,Homebrew経由で各種アプリをインストールするとパッケージのバージョンを(apt-get
のように)管理してくれます。
- Homebrewのサイトを検索してアクセス。
- インストール用のコマンドがあるので,コピーしてターミナルにペーストするとインストールが始まります。
- ターミナルは
ターミナル
というアプリからできますが,iTerm
などの専用アプリを使うもよし,VSCode
などのターミナルウィンドゥを開くもよし,です。
- ターミナルは
- Homebrewが入ったら
brew install r
のコマンド一つでOK!- brewで管理しているアプリのアップデートは
brew upgrade
のコマンド一つでOK!
- brewで管理しているアプリのアップデートは
RStudioも使いましょう
RStudio
で検索します。RStudio Desktop
あるいはPosit社が出てきます。Install RStudio
からRStudio Desktopをダウンロードしてインストールしましょう。
RStudioはServer版もあります。サーバを用意すればブラウザ経由で簡単に使える利点があります。
- Homebrewで管理していたら
brew install --cask rstudio
でOK!
RStudioの起動画面
- 大きく4分割して使います。
- 起動して最初にやるのが「環境設定」です。
- メニューバーから,Tools > Global Optionsと進みます。
オススメ設定
- General > Basic のWrokspace,
Save Workspace to .RData on exit:
をneverに - General > Graphics > Graphics Deviceの
Backend
をAGGに - Appearance の
Editor Font
を見やすいフォントにしましょう - Appearance の
Editor Font size
を見やすい大きさにしましょう
おすすめフォント
オススメ設定(つづき)
- Pane Layoutを
- SourceとCosoleを横並びに
- かなりワイドな画面をお使いの方は,
Add Column
で3列にしてsource paneを一列増やそう
- 設定が終わったら Apply(適用) ボタンをおして,OK で閉じる
RStudioの4つの窓
Pane1
Source
ペイン;エディタ領域で,Rスクリプトを書く場所。
Pane2
環境その他のペイン
Environment
はメモリに入っている変数・オブジェクトを表示History
は履歴を保管Connections
はデータベースと繋げたりするときに使いますTutorial
はlearnr
パッケージを使ったチュートリアルをする画面です
Pane3
Console
ペインはRエンジン。>
になっているときは入力待ち。直接入力してもOKSource
で書いたコードを送り込んで実行する,が基本的な使い方History
から送り込むことも可能
Pane4
ファイルその他のペイン;
Files
はワーキングディレクトリの表示,簡単な操作Package
はパッケージ管理(後述)Plots
,Viewer
は出力表示
RStudioはプロジェクト管理が基本
- プロジェクト=フォルダに紐づいた作業環境を作ろう
- File > New ProjectからNew Directory/Existing Directory/Version Controlを選ぶ
- New Directory; 新しいフォルダで作業開始
- Existing Directory; 既存のフォルダをプロジェクトと紐付け
- Version Control; Githubレポジトリとプロジェクトを紐付け
- File > New ProjectからNew Directory/Existing Directory/Version Controlを選ぶ
プロジェクトにしておくと,作業フォルダの設定も自動でなされるから,ファイルの読み込みなどでパスの指定が楽になります。
- 作業単位でプロジェクトフォルダを作りましょう!
- すでにフォルダに色々まとめている人は,Existing Directoryから
- まだフォルダがない人は,New Directoryから
Rをさわってみましょう
はじめの1歩
- Rはインタプリタ言語=一問一答
- Consoleに
>
が出ていたら聞く準備ができています。 - Consoleに
+
が出ていたら前の入力が終わってません。
- Consoleに
- 直接Consoleに書き込むのではなく,スクリプトに書きましょう。
- File > New File > R Script と進むと無名のスクリプトファイルが開きます
- スクリプトファイルが開いたら,まず次のように書きます。
- 一行目は呪文のようなものだと思ってください。
rm
という関数はremoveを意味していて,現在Rのメモリにある変数やオブジェクトを除外します。list=ls()
は「メモリのすべてのオブジェクトリスト」を意味するので,これで環境の初期化になります。
パッケージ
- パッケージは関数のセット。元のRに追加するだけで機能が増えます。
- パッケージはCRANを通じて公開され,ペインの
Packages
タブで管理できます。
- デフォルトではCRANから取ってくることになります。(要ネット環境)
- Packagesのところで
exametrika
等と入力してインストールしちゃいましょう。 - あるパッケージが他のパッケージを必要とすることもあります。これを依存パッケージといいます。
- RStudioのPackagesタブでは
install dependencies
にチェックがあるのがデフォルトです。- 依存パッケージがあれば自動的にインストールされます。
- Packagesのところで
パッケージの使い方
- パッケージを使うには
library
と書きます。
library(exametrika)
要求されたパッケージ mvtnorm をロード中です
要求されたパッケージ igraph をロード中です
次のパッケージを付け加えます: 'igraph'
以下のオブジェクトは 'package:stats' からマスクされています:
decompose, spectrum
以下のオブジェクトは 'package:base' からマスクされています:
union
これで
exametrika
パッケージの持つ関数が実行できるようになりました!他のパッケージも同様です。パッケージのインストールを毎回する必要はありません。インストールは「手に入れる」ということだからです。
パッケージの実装(
library
)はセッション毎に行う必要があります。これは「そうびする」ようなものです。Rスクリプトの冒頭で
rm(list=ls())
としましたが,分析に必要なパッケージはスクリプトの最上部にまとめて書いておきましょう。- Rはインタプリタなので,逐次的に処理が進みますが,行ったり来たりしていると「パッケージを読み込んだっけ?」とか「今は何の数字で何の計算をしてるんだっけ?」となってしまいます。
- 細かいことですが,パッケージは読み込む順番に影響されることがあります。
- 同じ関数名を異なるパッケージが使っている場合,後で読み込まれた方が上書きされます。
- 混同しないように
PackageName::function
のように::
で明示することがあります。
数値計算の基礎
- スクリプトに四則演算を書いて,Cmd+Enterでコンソールに送ります。
- 複数行選択/Runボタン/Sourceボタンをつかってもいいでしょう。
1 + 2
[1] 3
3 - 4
[1] -1
5 * 6
[1] 30
7 / 3
[1] 2.333333
- 出力に
[1]
とあるのは気にしないでください。- Rはベクトルで処理します。今回の演算も,要素が1つのベクトルとして考えて処理しています。
- 計算結果を保持する,あるいは名前をつけて管理することができます。
- Rは「名前をつけて管理する対象」をすべてオブジェクトといいます。
<- 1 + 2
a <- 3 - 4
b print(a)
[1] 3
print(b)
[1] -1
print(a + b)
[1] 2
<-
で代入を意味します。ショートカット(ALTと-,optionと-)も覚えておこう- RStudioの
Environment
タブに保存されているオブジェクトが表示されています。ダブルクリックで確認できます。
<- 5
a + b a
[1] 4
同じオブジェクト名なら上書きされることに注意
ベクトル,行列,リスト,データフレーム
- 複数の数字のセット,ベクトルは
c()
でくくることで表現します。- 連続した数字はコロン
:
で表現します。
- 連続した数字はコロン
- 2次元に並ぶ数字のセット,行列は
matrix()
でつくります。matrix
関数にベクトルを与えるなどします。
- 3次元以上の数字のセット,配列は
array()
で,dim
オプションで各次元の大きさを指定します。 - 数字,文字,論理値(T/F)などが混在するもののセット,リストは
list()
でつくります。 - リストの中でも矩形に整っているデータフレームは,
data.frame()
でつくります。
分析するときはデータフレームがもっともよく使われます
データフレームの上位互換,tibble
という型もあります。これはtibble
パッケージを読み込むことで使えるようになります。
ベクトル(Vector)の例
数値ベクトル
<- c(1, 2, 3, 4, 5)
x print(x)
[1] 1 2 3 4 5
文字列ベクトル
<- c("りんご", "みかん", "バナナ")
y print(y)
[1] "りんご" "みかん" "バナナ"
論理値ベクトル
- Rには文字,数字以外に論理値というのがあります。真/TRUEか偽/FALSEか,を表します。
- 使い方としては,論理判断の条件で使ったり,オプションの「スイッチオン・オフ」を表す時につかいます。
- 大文字の
T
やF
は論理値を表す特別な用語(予約語)です。
<- c(TRUE, FALSE, TRUE)
z print(z)
[1] TRUE FALSE TRUE
行列(Matrix)
- 1から9までの数字で3×3行列を作成
<- matrix(1:9, nrow = 3, ncol = 3)
m1 print(m1)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
- 行名と列名を付ける
<- matrix(1:9,
m2 nrow = 3, ncol = 3,
dimnames = list(
c("A", "B", "C"),
c("X", "Y", "Z")
)
)print(m2)
X Y Z
A 1 4 7
B 2 5 8
C 3 6 9
配列(Array)
- 2×3×2の3次元配列を作成
<- array(1:12, dim = c(2, 3, 2))
arr print(arr)
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
リスト(List)
- 様々な型のデータを含むリストを作成
<- list(
my_list numbers = c(1, 2, 3),
text = "Hello",
logical = TRUE,
matrix = matrix(1:4, 2, 2)
)print(my_list)
$numbers
[1] 1 2 3
$text
[1] "Hello"
$logical
[1] TRUE
$matrix
[,1] [,2]
[1,] 1 3
[2,] 2 4
リスト(List)
- リストの要素へのアクセス
- 名前付きリストなら
$
マークで呼び出せます
- 名前付きリストなら
$numbers my_list
[1] 1 2 3
$numbers[3] my_list
[1] 3
$matrix[, 2] my_list
[1] 3 4
$matrix my_list
[,1] [,2]
[1,] 1 3
[2,] 2 4
データフレーム(Data Frame)
- データフレームの作成例
- データフレームはリストの特殊な型なので,リストを
as.data.frame
関数で変換してもOK
- データフレームはリストの特殊な型なので,リストを
<- data.frame(
df name = c("田中", "鈴木", "佐藤"),
age = c(25, 30, 28),
gender = c("M", "F", "M"),
height = c(170, 160, 175)
)
print(df)
name age gender height
1 田中 25 M 170
2 鈴木 30 F 160
3 佐藤 28 M 175
- 要素へのアクセスの仕方はリストと同じです
$age df
[1] 25 30 28
データ構造の比較
特徴 | ベクトル | 行列 | 配列 | リスト | df | Tibble |
---|---|---|---|---|---|---|
次元 | 1次元 | 2次元 | n次元 | 階層構造 | 2次元 | 2次元 |
型の統一 | 必要 | 必要 | 必要 | 不要 | 列ごと | 列ごと |
データ型 | 単一 | 単一 | 単一 | 複数可 | 複数可 | 複数可 |
主な用途 | 単純な数列 | 数値計算 | 多次元データ | 複雑なデータ | データ分析 | データ分析 |
tibble型はデータフレームの上位互換で,tibble
パッケージを使うことで導入できます。主な特徴は次のとおりです。
- 型情報の表示
- 行数と列数の表示
- データの一部のみ表示(大きなデータセット時に便利)
パイプ演算子を活用しよう
- パイプ演算子は、データの処理を順番に繋げてくれる記号
- 左から右へ、データが流れていくイメージ!コードが読みやすく、理解しやすくなる
基本的な使い方
- パイプ演算子を使わないでいると?
<- sum(sqrt(abs(log(c(1:10))))) result
- パイプ演算子を使ってみると?
<- c(1:10) |>
result log() |>
abs() |>
sqrt() |>
sum()
- パイプ演算子はショートカット
Ctrl/Cmd + Shift + M
で入力できます|>
はR4.1以降使えるようになった,Rのもってるパイプ演算子%>%
はmagrittr
パッケージや,それを含んだtidyverse
パッケージで以前から使われていたもの
(余談)tidyな世界
tidyverse
パッケージは,データハンドリングを画期的に簡単にしたパッケージで,これでRのユーザが一気に広がったと言っても過言ではありません。tidyverse
パッケージはパッケージのパッケージ。- 大規模データ用のデータフレーム,
tibble
- パイプ演算子のパッケージ
magrittr
- 描画を綺麗にしてくれるパッケージ
ggplot2
などが含まれます
- 大規模データ用のデータフレーム,
- 専門の書籍も出ています
tidyverse
パッケージを基本にした改訂2版RユーザのためのRStudio[実践]入門〜tidyverseによるモダンな分析フローの世界
チートシートを活用しよう
- RStudioのメニューバー,Help> Cheat Sheetsと進んでください
- PDFファイル1,2枚分で基本的な使い方を始めとした,様々なチートシートが現れます!
具体的にデータを扱ってみよう
データの読み込みと操作
CSVファイルの読み込み
- CSVファイルはRでもっとも一般的なデータ形式の一つです
- エクセルファイルなどと違って,アプリケーションに依存せず,メモ帳で開くこともできますので,あらゆるOSに対応できます。
- 基本的な読み込み方法は
read.csv()
関数を使います tidyverse
パッケージを使っている人は,read_csv()
関数のほうが細かな調整が効いていいかも
基本的なCSV読み込み
<- read.csv("data.csv") data
日本語を含むCSVファイルの場合
- Windowsユーザ/Excelユーザは文字化けを起こす可能性があります。
- 世界標準である
UTF-8
という文字コードでファイルを管理しましょう
<- read.csv("data.csv", fileEncoding = "CP932") # Windowsの場合 data
- Rstudioの
Files
タブからファイルを選んでImport Dataset
とするとGUIでも操作できます。- Excelファイルを読み込みたい場合は,そちらを使うのもいいでしょう
Import Dataset
サンプルコードを読み込んでみよう
- インターネットから読み込むこともできます!
- 次のコードでサンプルデータを読み込んでみましょう。
<- read.csv("https://kosugitti.github.io/psychometrics_syllabus/codes/SampleData/BaseballDecade.csv") baseball
- URLの参照先は私のサイトです
- 私の心理統計教育教材サイトに置いてあるサンプルデータです
- 野球選手の基本情報など,10年分のデータがあります。
- データの一部(冒頭)を
head
関数で確認してみましょう
head(baseball)
Year Name team salary bloodType height weight UniformNum position
1 2011年度 永川 勝浩 Carp 12000 O型 188 97 20 投手
2 2011年度 前田 健太 Carp 12000 A型 182 73 18 投手
3 2011年度 栗原 健太 Carp 12000 O型 183 95 5 内野手
4 2011年度 東出 輝裕 Carp 10000 A型 171 73 2 内野手
5 2011年度 シュルツ Carp 9000 不明 201 100 70 投手
6 2011年度 大竹 寛 Carp 8000 B型 183 90 17 投手
Games AtBats Hit HR Win Lose Save Hold
1 19 NA NA NA 1 2 0 0
2 31 NA NA NA 10 12 0 0
3 144 536 157 17 NA NA NA NA
4 137 543 151 0 NA NA NA NA
5 19 NA NA NA 0 0 0 9
6 6 NA NA NA 1 1 0 0
オブジェクトの基本情報
str
関数,あるいはEnvironment
タブにあるオブジェクト名を開くと,基本情報が確認できます。
str(baseball)
'data.frame': 6546 obs. of 17 variables:
$ Year : chr "2011年度" "2011年度" "2011年度" "2011年度" ...
$ Name : chr "永川 勝浩" "前田 健太" "栗原 健太" "東出 輝裕" ...
$ team : chr "Carp" "Carp" "Carp" "Carp" ...
$ salary : int 12000 12000 12000 10000 9000 8000 8000 7500 7000 6600 ...
$ bloodType : chr "O型" "A型" "O型" "A型" ...
$ height : int 188 182 183 171 201 183 177 173 176 188 ...
$ weight : int 97 73 95 73 100 90 82 73 80 97 ...
$ UniformNum: int 20 18 5 2 70 17 31 6 1 43 ...
$ position : chr "投手" "投手" "内野手" "内野手" ...
$ Games : int 19 31 144 137 19 6 110 52 52 40 ...
$ AtBats : int NA NA 536 543 NA NA 299 192 44 149 ...
$ Hit : int NA NA 157 151 NA NA 60 41 11 35 ...
$ HR : int NA NA 17 0 NA NA 4 2 0 1 ...
$ Win : int 1 10 NA NA 0 1 NA NA NA NA ...
$ Lose : int 2 12 NA NA 0 1 NA NA NA NA ...
$ Save : int 0 0 NA NA 0 0 NA NA NA NA ...
$ Hold : int 0 0 NA NA 9 0 NA NA NA NA ...
- 何年度のデータか(
Year
),選手名(Name
),どのチーム所属か(team
),年俸(salary
)などがあります。 - データの型もわかります
chr
は文字列型です。四則演算の対象ではありません。int
,num
は数字です(整数と実数)NA
は欠測値を表しています。
read.csv
関数は読み込んだデータを自動的にデータフレーム型にします。
(余談)Rにおけるデータ型と尺度水準の基本
統計データは扱い方によって以下のように分類でき、それぞれRの変数型と対応しています:
バイナリデータ (論理型・logical):
TRUE/FALSE
または1/0
で表される二値データ。R内ではlogical
型(TRUE
,FALSE
)または数値の0
と1
で表現。例:success <- TRUE
カウントデータ (整数型・integer): 0以上の整数値。行動回数や対象個数など。Rでは
integer
型で表現。例:count <- as.integer(5)
またはcount <- 5L
カテゴリデータ (因子型・factor): 複数の値が対象と対応するデータ。Rでは
factor
型が対応し、内部的には整数だが、ラベルを持つ。例:region <- factor(c("東京", "大阪"), levels=c("東京", "大阪", "京都"))
連続データ (数値型・numeric): 小数点を含む連続的な値。Rでは
numeric
型として扱われる。例:weight <- 65.4
尺度水準とRでの扱い
データの尺度水準はRでの統計処理に重要な影響を与えます:
名義尺度水準: 対象と一対一対応する数字(例:都道府県コード)。Rでは
factor
型で扱います。順序尺度水準: 大小関係に意味がある数字(例:ランキング)。Rでは
ordered
またはfactor(ordered=TRUE)
で表現。RではOrdered Factor型といいます。間隔尺度水準: 差分比較が可能な数字(例:温度)。Rでは通常
numeric
型で扱います。比率尺度水準: 0を基準とした比率が意味を持つ数字(例:長さ、重さ)。Rでは
numeric
型で扱います。
Rでの実践的なコード例
RStidoのEnvironmentタブやstr
関数で,どのように扱われているか確認しておきましょう。また出力のされ方もみておきましょう。
バイナリデータ
<- as.logical(c(1, 0, 1, 1, 0)) # 数値から論理型へ変換
pass_fail pass_fail
[1] TRUE FALSE TRUE TRUE FALSE
カウントデータ
<- c(3L, 5L, 2L, 7L) # 整数型 (Lは整数リテラルの指定)
observations observations
[1] 3 5 2 7
カテゴリデータ
<- factor(1:4,
blood_type labels = c("A", "B", "O", "AB")
) blood_type
[1] A B O AB
Levels: A B O AB
順序データ
<- ordered(c("低", "中", "高"),
rating levels = c("低", "中", "高")
) rating
[1] 低 中 高
Levels: 低 < 中 < 高
連続データ
<- c(36.5, 37.2, 36.8) # 数値型
temperature temperature
[1] 36.5 37.2 36.8
統計分析では、データの型と尺度水準に応じて適切な分析手法を選択することが重要です。Rはこれらの概念をデータ構造として実装しており、正しい型を指定することで適切な統計処理が可能になります。
記述統計量
summary
関数で要約統計量を算出できます
summary(baseball)
Year Name team salary
Length:6546 Length:6546 Length:6546 Min. : 200
Class :character Class :character Class :character 1st Qu.: 1000
Mode :character Mode :character Mode :character Median : 2000
Mean : 5178
3rd Qu.: 5700
Max. :65000
bloodType height weight UniformNum
Length:6546 Min. :163.0 Min. : 60 Min. : 0.00
Class :character 1st Qu.:177.0 1st Qu.: 78 1st Qu.:16.00
Mode :character Median :180.0 Median : 83 Median :33.00
Mean :180.7 Mean : 84 Mean :34.93
3rd Qu.:184.0 3rd Qu.: 89 3rd Qu.:52.00
Max. :216.0 Max. :135 Max. :99.00
position Games AtBats Hit
Length:6546 Min. : 1.00 Min. : 0.0 Min. : 0.00
Class :character 1st Qu.: 9.00 1st Qu.: 23.0 1st Qu.: 4.00
Mode :character Median : 25.00 Median : 95.0 Median : 21.00
Mean : 40.67 Mean :165.1 Mean : 42.53
3rd Qu.: 61.00 3rd Qu.:271.0 3rd Qu.: 69.00
Max. :144.00 Max. :603.0 Max. :216.00
NA's :3233 NA's :3233
HR Win Lose Save
Min. : 0.000 Min. : 0.000 Min. : 0.000 Min. : 0.00
1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.: 0.000 1st Qu.: 0.00
Median : 1.000 Median : 1.000 Median : 1.000 Median : 0.00
Mean : 3.967 Mean : 2.517 Mean : 2.509 Mean : 1.27
3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.: 4.000 3rd Qu.: 0.00
Max. :60.000 Max. :24.000 Max. :15.000 Max. :54.00
NA's :3233 NA's :3307 NA's :3307 NA's :3307
Hold
Min. : 0.000
1st Qu.: 0.000
Median : 0.000
Mean : 3.511
3rd Qu.: 3.000
Max. :45.000
NA's :3307
- 行数,列数を確認して,データのサイズを見ておきましょう
NROW(baseball)
[1] 6546
NCOL(baseball)
[1] 17
変数毎の要約統計量
- 変数に
$
でアクセスして,要約統計量を計算してみましょう。
mean(baseball$height)
[1] 180.7177
sd(baseball$height)
[1] 5.613504
median(baseball$weight)
[1] 83
max(baseball$salary)
[1] 65000
min(baseball$salary)
[1] 200
quantile(baseball$salary)
0% 25% 50% 75% 100%
200 1000 2000 5700 65000
因子型をつくってみましょう
- チーム名はたかだか12種類です。名義尺度水準+ラベルの数値であるFactor型にしてみましょう。
$team <- as.factor(baseball$team)
baseballsummary(baseball$team)
Carp DeNA Dragons Eagles Fighters Giants Lions Lotte
517 550 573 569 533 524 528 538
Orix Softbank Swallows Tigers
579 525 556 554
- 一行目で,同じ変数に「上書き」していることに注意
as.factor
関数は変数をFactor型に変換するものです- クラス名,実験の水準などグループ化変数として扱うのに便利です
可視化してみましょう
- データは図にするのが基本です。Rの基本関数でも十分綺麗な図が描けます。
- ヒットの数をヒストグラムにしてみましょう
- ヒストグラムの関数は
hist
です
print(head(baseball))
Year Name team salary bloodType height weight UniformNum position
1 2011年度 永川 勝浩 Carp 12000 O型 188 97 20 投手
2 2011年度 前田 健太 Carp 12000 A型 182 73 18 投手
3 2011年度 栗原 健太 Carp 12000 O型 183 95 5 内野手
4 2011年度 東出 輝裕 Carp 10000 A型 171 73 2 内野手
5 2011年度 シュルツ Carp 9000 不明 201 100 70 投手
6 2011年度 大竹 寛 Carp 8000 B型 183 90 17 投手
Games AtBats Hit HR Win Lose Save Hold
1 19 NA NA NA 1 2 0 0
2 31 NA NA NA 10 12 0 0
3 144 536 157 17 NA NA NA NA
4 137 543 151 0 NA NA NA NA
5 19 NA NA NA 0 0 0 9
6 6 NA NA NA 1 1 0 0
print(class(baseball$Hit))
[1] "integer"
hist(baseball$Hit)
可視化してみましょう
- データは図にするのが基本です。
- チーム毎のヒット数の違いを見てみましょう
- ボックスプロット(箱ひげ図)の関数は
boxplot
です- x軸がFactor型になっています
boxplot(Hit ~ team, data = baseball)
可視化してみましょう
- データは図にするのが基本です。
- 散布図を書いてみましょう
- 散布図は
plot
関数にx軸とy軸変数を指定します
plot(baseball$height, baseball$weight)
ggplotによる出力は,より綺麗です
次の発表をおたのしみに!
library(ggplot2)
|>
baseball ggplot(aes(x = weight, y = height, color = team)) +
geom_point() +
geom_smooth(formula = "y ~ x", method = "lm", se = FALSE) +
facet_wrap(~team)
発展的なトピックス
RStido以外のIDE
- エディタは
VSCode
をお使いの方も少なくないと思いますが,VSCode
でRの拡張機能を使うこともできます。languageserver
パッケージが必要です。
VSCode
からフォークされたPositronが熱い!- RStudioを提供しているPosit社が力を入れてる次世代IDE
- Homebrewがある人は
brew install --cask positron
でOK
Quarto/Rmarkdown:文芸的プログラミング
Rmarkdownとは
Markdown書式というプレーンな文書作成文法 + チャンクと呼ばれるRコードの結合
文書を作成(レンダリング)するときは,Rの計算を実行してその結果を文書内に反映させる
コピペ汚染がなく,RStudioで執筆と分析が統合,これだけで完結できます。
Quartoとは
次世代のR Markdownです。このスライドもQuartoで作られています
マルチ言語に対応(R, Python, Julia等)
ePub, PDFなど出力も多様
公式サイトに豊富な情報があります!
私たちのR>再現可能な研究も参考になります!
Quarto/Rmarkdown:文芸的プログラミング
基本的な使い方
- File → New FileでQuarto Document / R Markdownを選択
- TitleやAuthorを入力,出力書式(HTML,PDF,Word)などを選ぶ画面が出ます
- サンプル文書・コードが書いてあるファイルが生成されます
これをRnederすることでファイルが出力されます。