2 分析環境の構築

𠮷田政之

近畿大学経営学部

2026/04/13

0.1 前回やったこと

  • 講義の概要
  • 社会調査とは?

0.2 R

0.2.1 R

Rは、統計分析に強みを持つコンピュータ言語です。

0.2.2 Posit Cloud

Posit社の提供するオンラインで動く計算環境。Rを便利に使うための装備品。

この講義ではPosit Cloud上でRStudio(統合開発環境;IDE)を動かします。

0.3 プロジェクト

0.3.1 プロジェクトの作成

新しいプロジェクト始める。

一つのプロジェクトの中に複数のRスクリプトやデータをまとめておいておけます。

この講義では一つのプロジェクトを使います。

Posit Cloudではログイン後の画面の右上のNew Project ▽から新しいプロジェクトを作成することができます。

ここではNew RStudio Projectを選択します。

1. トップページ

2. New Project > New RStudio Project

3. 開いたところ

0.3.2 dataフォルダの作成

プロジェクト内に先にこれから使うデータの保存先を作っておきます。

  1. 画面の右下「Files」タブの「New Folder」ボタンを押す
  2. dataという名前のフォルダを作る

0.4 スクリプトファイル

Rなどの統計ソフトを使う利点の一つは、再現性

  • 例えばエクセルでは、どんな順番にどんな処理をしたのかは記録されません。
  • Rなどのプログラミングソフトを使うと、操作した内容と順番をコードの形で記録しておけます。
  • コードを記録したファイルを「スクリプトファイル」と言います。

0.4.1 スクリプトファイルの作成

スクリプトファイルは、画面左上にある緑の「+」アイコンを押して、「R Script」を選択することで新規作成できます。

「第2回」という名前をつけて保存してみてください。

  • 画面右上の💾マーク、もしくは
  • Ctrl + s (Macなら⌘ + s)

R Scriptを選択

4分割の左上に白紙が出てくる

0.4.2 スクリプトファイルの保存

ファイルは保存しないと消えます。

1.新規ファイルを作成

2.保存するときは💾マークをクリック

3.初めて保存するときはファイル名を書く

4.保存場所はprojectフォルダのすぐ下であるか確認する

5.右下に指定した名前.Rというファイルができる

6.未保存の変更があるとファイル名が赤字になる

1 R(Rstudio)の操作

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

  • 4つある一つ一つの箱のことをペインという
  • 右側上が、読み込んだデータなどが表示される場所
  • 右下が、データやファイルが表示されるところ
    • パッケージや作成した図表も右下に出てくる
  • 左下がR本体
    • 分析結果等が表示される
  • (これから開く)左上が、プログラムを打つところ

Tip

初期状態の説明です。配置は自由に変えられます。ただし、講義の説明上少なくともこの講義の間は配置を変えないでほしい。

スクリプトファイルを作成すると(初期状態では)画面の左上に白紙のファイルが出てきます。ここにコマンドを打ち込んでいきます。

例えば以下のコマンドを打って実行すると、画面の左下にあるRの画面に実行結果が出ます。

1 + 1
[1] 2


実行の仕方は、実行したい行を選択→Ctrl + Enter (Macでは⌘ + Enter)

左下の画面(console)に直接 1 + 1 と打ち込んでも同じ結果が出ますが、後で記録に残らないので、コードはスクリプト画面に書く、左下は結果の表示だけ、と使い分けた方が良いです。

1.1 講義内課題1

Rスクリプトに以下の内容を打ち込んでください。スクリプト右上のRunボタンを押すか、Ctrl + Enter (Macの場合は⌘ + Enter)で実行してください。

1 + 3
2 * 4
1
足し算
2
掛け算
[1] 4
[1] 8

2 Rプログラミングの基礎

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

2.1 計算

簡単な計算は、以下の通り

1 + 1
[1] 2
2 * 6 #掛け算は *
[1] 12
2^4 #累乗は ^
[1] 16

2.2 オブジェクト

Rでは情報を自分で名前をつけたオブジェクト (変数とも呼ぶ) として保存できます。Rstudioでは、保存されたオブジェクトは右上のEnvironmentというところに表示されます。

x = 3
y = 5
z = x * y

=」の左はオブジェクト、右はその中身を表します。なので、「xという名前のオブジェクトに3を入れる」という指示をしています。これを実行すると画面右上にxというオブジェクトが表示されるはずです。xの中身を確認するには、そのオブジェクトの名前(今回の場合z)を打つと良いです1

z
[1] 15

一度オブジェクトを作っておけば、それを使った計算も可能です。

  • 例えば、先ほど保存したzを使って、
z + 3
[1] 18
y ^ 2
[1] 25

文字列でもオブジェクトになります(その場合” “で囲みます)

univ = "Ritsumeikan"
univ
[1] "Ritsumeikan"

これは数字じゃないので計算はできません

univ + 3
Error in `univ + 3`:
! non-numeric argument to binary operator

2.3 ベクトル・行列

2.3.1 ベクトル

複数の数値の並び(ベクトル)をオブジェクトとすることもできます。

vec = c(1, 2, 3, 4, 5)
vec
[1] 1 2 3 4 5

ベクトルごと足し算とか掛け算とかもできます

vec + 2
vec * 2
1
各数字に2足す
2
各数字に2かける
[1] 3 4 5 6 7
[1]  2  4  6  8 10

2.3.2 Matrix

縦×横の行列も作れます。matrixという名前です。

mat = matrix(c(435, 165, 265, 135), ncol = 2, byrow = TRUE)
mat
1
ncol = 2は列の数, byrow = TRUEは、横に並べるということ。
     [,1] [,2]
[1,]  435  165
[2,]  265  135

例えばbyrow = FALSE にすると縦に並ぶ

mat2 = matrix(c(435, 165, 265, 135), ncol = 2, byrow = FALSE)
mat2
     [,1] [,2]
[1,]  435  265
[2,]  165  135

縦横の名前をつけると

rownames(mat) = c("行1", "行2")
colnames(mat) = c("列1", "列2")
mat
1
rownamesはrow(行)の名前、colnamesはcolumn(列)の名前
    列1 列2
行1 435 165
行2 265 135

中に入っているものが全て数字なら、計算が可能です。

mat2 = mat + 3
mat2
1
全ての要素に3を足した新しいmatrixをmat2と名付けて保存
    列1 列2
行1 438 168
行2 268 138

2.4 関数

Rを使う上で最も重要なのが関数です。足し算引き算とかよりも高度な命令は関数を使って行います。先ほど作ったベクトル(vec)を使って

mean(vec)
min(vec)
max(vec)
1
平均を計算する関数
2
最小値を計算する関数
3
最大値を計算する関数
[1] 3
[1] 1
[1] 5


上にあるように、Rのコマンドは基本的には、やること(実行する対象)という構造になっている。

  • mean(vec)は、
    • やることが平均(mean)
    • 対象がvec

2.5 データフレーム

オブジェクトの中で重要な形式として、データフレームがあります。これは、縦方向に観測値を、横方向に変数を並べたデータを言います。

age = c(18, 21, 22, 23, 34)
gender = c("female", "male", "male", "female", "female")
dframe = data.frame(age, gender)
dframe
1
年齢のベクトル
2
性別のベクトル
3
二つのベクトルをdframeという名前のデータフレームに

エクセル等のデータを読み込んで分析する場合は、このデータフレーム形式です。

データフレームの中の特定の列を指定する場合は、「データフレーム名$列名

dframe$gender
[1] "female" "male"   "male"   "female" "female"

データフレーム内の一部を取り出して関数を使って計算できます

mean(dframe$age)
min(dframe$age)
median(dframe$age)
1
平均はmean
2
最小値(最大値)はmin(max)
3
中央値はmedian
[1] 23.6
[1] 18
[1] 22

2.6 講義内課題2

  1. 20点、35点、40点、70点、95点という5人の成績を示したテストの点数を表すベクトルを作成してください。オブジェクトの名前はtest_scoreとしてください。
  2. その平均点を求めてください
    • (ヒント) mean()関数のに先に作成した点数のベクトルを代入する。
  3. 学生の人数を収納する新たなオブジェクトを作成してください。名前はNとしてください。
    • (ヒント) length()関数はベクトルの次元(長さ)を返します。

2.7 パラメータと引数

パラメータ (parameters)、引数 (arguments) とは

関数の()の中に指定する値をパラメータと呼ぶ。例えば三つの引数を取る関数 example_function(A = 2, B = 10, C = "ice")に関して、Aを第一パラメータ、Bを第二パラメータ、Cを第三パラメータと呼ぶ。パラメータに代入する値 (2, 10, “ice”) のことを引数という。 ただし、両方まとめて引数と呼んだりもする。関数ごとにパラメータの数や指定の仕方は異なる。

関数の中には(というかほとんどが)複数の引数を持ちます。

r = seq(from = 0.1, to = 0.2, by = 0.01)
  • seq()は連続した数を作る関数。
  • 一つ目の引数 from = 0.1から、二つ目の引数to = 0.2まで、三つ目の引数by = 0.1ごとに数字を並べる

多くの関数は引数の定位置を持っていて、その順番に従った場合、上記のfromやtoといった指示は省略可能です。

r = seq(0.1, 0.2, 0.01)

定位置以外の順番でやる場合は、指示が必要です。以下も同じです。

r = seq(to = 0.2, by = 0.01, from = 0.1)

2.8 プログラムのスペースと改行

2.8.1 スペース

Rは半角スペースを無視します。なので、以下は全部同じです

x = c(1, 2, 3) + 3 ^ 2
x=c(1,2,3)+3^2

でも、可読性のため、=の前後や2項演算子(+とか-とか)、あとコンマの後などには半角スペースを入れることが一般的です。

日本人がプログラムを打つときに失敗しがちなのが、記号やスペースを全角にすることです。代表的なものは全角カッコや全角コンマや全角スペースです。全角スペースはひらがなや漢字など同じ文字として認識されるので、全角スペースを入れるとエラーになります。半角スペース二つと全角スペースは、ぱっと見見分けがつかないので注意!

2.8.2 改行

Rでは、コンマ(,)の後などコードの切れ目で改行しても動作します。特に()が何重にもなる場合、改行したほうが見やすいかもしれません。例えば、上でやった行列の作成コマンド

mat = matrix(c(435, 165, 265, 135), ncol = 2, byrow = TRUE)

は、以下のように書いても全く同じように動作します。

mat = matrix(
    c(435, 165, 265, 135),
    ncol = 2,
    byrow = TRUE
)

あまり改行しすぎるのもかえって読みにくいかもしれません。自分が見やすいように程よく改行してください。

mat =
    matrix(
        c(
            435,
            165,
            265,
            135
        ),
        ncol=2,
        byrow=TRUE
    )

3 パッケージ

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

より高度なことをしたり、同じことをより簡単にしたりするために追加の機能を足すことができます。

この追加の機能をパッケージといいます。

RがスマートフォンのOSのようなもので、パッケージはアプリのようなもの。

Rはスマホ

パッケージはアプリ

3.1 パッケージのインストールと利用

3.1.1 インストール

Rのプログラムを格段にわかりやすくするパッケージであるtidyverseを使う準備をしてみます。パッケージは、最初に使う時にはインストールする必要があります(これは1回だけ。App Storeでアプリをとるような感じ)。

install.packages("tidyverse")

RStudioであれば右下のPackagesから選択してインストールすることも可能。

3.1.2 利用

パッケージを使う時には、分析ファイルを実行する最初の段階で以下のコマンドを使います(スマートフォンにすでに入っているアプリを開くイメージ)。

library(tidyverse)

3.2 pacmanパッケージのインストール

pacmanパッケージのpacman:::p_load()というコマンドを使うと

  • 講義で使うパッケージがインストールされていたらそのパッケージを読み込み(つまりlibrary()コマンドを実行して)
  • インストールされていなかったら、インストールした後に読み込み(install.packages()library()

をしてくれます。新しいパッケージを使うたびにインストールしてもらう手間が省けるので、講義ではlibrary()ではなくpacman:::p_load()を使います。

そのための準備として、左下のconsoleに以下のコマンドを打ち込んでください

install.packages('pacman')

pacmanがない時

  1. 既に入ってるパッケージを使う場合は問題ない
library(tidyverse)
  1. 入ってないパッケージを使おうとすると、一回エラーが出る
library(2つめのパッケージ)
Error in parse(text = input): <text>:1:10: unexpected symbol
1: library(2つめのパッケージ
             ^

そこで

install.packages('2つめのパッケージ')
library(2つめのパッケージ)

とする。

pacmanがある時

既にパッケージが入ってるか入ってないかに関わらず(入ってなかったら自動でインストールしてくれる)、しかも複数のパッケージを同時に呼び出せる

pacman::p_load(tidyverse, 2つめのパッケージ)

4 データの読み込み

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

さっきはデータを下記のように手打ちしました。

age = c(18, 21, 22, 23, 34) # 年齢のベクトル
gender = c("female", "male", "male", "female", "female") # 性別のベクトル
dframe = data.frame(age, gender)

しかし、アンケートデータや、企業の会計データ等をこのように手打ちするのは現実的ではありません。エクセル等で集計されたデータを読み込むのが一般的です。

  • 例えばgoogle formsでアンケートを作成したら、googleスプレットシート(googleのエクセルみたいなもの)に自動的に集計されます。

以下では、エクセルファイルを読み込む方法についてまとめています。

4.1 準備

  1. 講義ウェブサイトの上のバーからDataに進み、第2回の「2_tests」データをダウンロード
  2. さっき作ったプロジェクトフォルダ内のさっき作ったdataフォルダに入れてください
    • 右下の「Files → Upload → Browse → dataフォルダを選択」、「Browse → さっきダウンロードした2_testsを選択」

4.2 前提

エクセルで列が変数、行が観測となるようにデータを作られていることを想定します。まず、これを表計算ソフト上でcsv形式でプロジェクト内のdataフォルダに保存します1

4.2.1 csvファイルの取り込み

dataフォルダに入れたファイルを読み込むには、csv形式なら、read_csv("ファイル名") もしくはread.csv("ファイル名")を使います1。ここでは、2_tests.csvと言う名前のデータを、testsと言う名前で読み込んでいます。

tests = read.csv("data/2_tests.csv")

読み込んだデータを見てみます。最初のいくつかだけが表示されるhead(データ名)コマンドが便利です。

head(tests)

5 データの処理

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

5.1 新しい変数の作成

現在のデータにはない、4教科の合計点が欲しい。新しい変数はmutate()で作る。ただし、mutateだけだと、変数を作ってどこにも保存してくれないので、保存場所を指定する必要があります。今回は元のデータに付け足す形で作ります。

tests = tests |>
  mutate(all = math + japanese + history + physics)

tests に testsの中のデータを使って作った新しい変数を入れる。

tests

5.2 パイプ演算子 |>

パイプ演算子 (|>) は前の情報を次の関数の第一引数に渡すという処理をしてくれます。

例えば、データフレームから一つの列を取り出すときは$ではなく、pullという関数も使えます。

tests |>
    pull(math)
 [1] 41 74 65 76 53 29 16 24 73 25

続けて平均値を計算できます。

tests |>
    pull(math) |>
    mean()
[1] 47.6

これだけだと mean(tests$math) の方が楽に見えますが、いろいろな処理をしていくときは、|>で繋いだほうが中間オブジェクトが少なくなったり処理が見やすくなったりします。

これだけだと mean(tests$math) の方が楽に見えますが、いろいろな処理をしていくときは、|>で繋いだほうが中間オブジェクトが少なくなったり処理が見やすくなったりします。

tests |>
    summarise(
        across(
            everything(),
            mean
      )
    )

6 参考情報

  1. R(Rstudio)の操作

  2. Rプログラミングの基礎

  3. パッケージ

  4. データの読み込み

  5. データの処理

  6. 参考情報

6.1 エラーについて

プログラミングをやってて一番むかつき、嫌いになる要因はエラーメッセージ

  • いわゆるバグがある状態

できることは

  1. エラーメッセージをちゃんと読むこと
  2. エラーメッセージをそのままググること

エラーが出てたら99.99%自分が悪い(パソコンは悪くない)」ということを自覚すること

6.2 Base RとTidyverse

Rには分析に必要なさまざまな機能が装備されています。

しかし、

  • 同じことをもっとわかりやすく書ける機能
  • 新しい分析手法の開発に合わせた新しい関数

などは、パッケージとして提供されます。その中でもRの操作性全般にわたる改善を行うパッケージがtidyverseです。

  • その名の通りtidyという理念のもとで作られたuniverse的な何か

tidyverseを使ったコードはいわゆる「モダンな」コードと呼ばれたりします

実際その便利さは、base R (素のR) を知ってないと実感できないですが、この講義では特に断りなくtidyverseの方法を中心に構成しています。

Caution

ネットで検索すると、同じ処理でもbase Rを使った方法とtidyverseを使った方法が紹介されることがあります。どっちを使っても、また2つの方法が混ざってても基本的に問題はありません。

6.3 サイト紹介

Rのコマンドやパッケージは無数にあります。いつも使うもの以外は覚えてられません。

でも大丈夫。ネット上にはさまざまなコマンドの紹介やエラーへの対処法が落ちています。

卒業論文のためのR入門

  • 森知晴先生のサイト
  • インストール方法から学部卒論程度の分析までの使い方を詳しく説明してくれています。
  • 困ったらまずここ

私たちのRR for Political Science

  • 宋財泫先生と矢内勇生先生のサイト。
  • 森先生のやつより細かかったり詳しかったりする。