詳細は An Introduction to R を参照.
↓ Rコード(Rスクリプト or Rプログラム,薄い灰色で塗りつぶされた箇所)の例
1 + 1
## [1] 2
↑ Rコードを実行した結果
このページのRコードをどのように実行すればよいか?
1 + 1 # addition
## [1] 2
2 - 3 # subtraction
## [1] -1
2 * 3 # multiplication
## [1] 6
2 / 3 # division
## [1] 0.6666667
2 ^ 3 # 2 to the power of 3
## [1] 8
2 ** 3 # same as above
## [1] 8
sqrt(16) # square root
## [1] 4
log(10) # natural logarithm
## [1] 2.302585
exp(1) # exponential, e = Napier's constant
## [1] 2.718282
sqrt
, log
などは関数.
「関数名(引数)
」の形で使う.
「引数
」が関数の入力.
以下の例では関数 \(f\)
(sqrt
) に対して \(x = 16\)
が引数(関数の入力)で,\(4\)
が結果(関数の出力).
\[ f(x) = \sqrt{x}, \quad f(16) = \sqrt{16} = 4. \]
関数の機能や使い方を調べる.
?exp
help(exp) # same as above
円周率 \(\pi\) などの定数は既に割り当てられている.
pi # pi (circle ratio)
## [1] 3.141593
この pi
は「オブジェクト」と呼ばれ,数値が割り当てられている.
実は,ユーザーは任意の数字を適当な「オブジェクト」として定義することができる. 数値を「オブジェクト」に割り当てることで,数値を複数の箇所で繰り返し使うことができる.
「オブジェクト名 <- 数値
」の形式で割り当てる.
「<-
」は割り当て(または代入)を行う演算子で,「<
」(小なり)と「-
」(ハイフン)を組み合わせて使用.
x <- 1 # "x" is the object name
x
## [1] 1
注:小文字 x
と大文字 X
は区別される.
このオブジェクトを使って何らかの計算をすることができる.
x + 2
## [1] 3
x <- 10 # overwrite (override)
x + 5
## [1] 15
オブジェクト名はアルファベットではじめる.
2文字目以降は数字やアンダーバーを使ってよい.
演算記号など(+ - * / ( ) [ ] ! ? < > = | ^ # $ % &
etc.)は使用不可.
x_3digit <- 500
オブジェクトには数字だけではなく文字列を代入することもできる.
ただし,文字列をダブルクオーテーション ""
で囲まなければならない.
univ_name <- "Waseda"
paste(univ_name, "University") # "paste" function concatenate strings
## [1] "Waseda University"
上ではスカラーの数字を考えていたが,数ベクトル(すうベクトル)を扱うこともできる.
ベクトルを作成するには c
関数を使い,ベクトルの要素を引数として指定する.
c(1, 2, 6) # combine values into vector
## [1] 1 2 6
欠損値 (missing value) は NA
で表す.
c(1, NA, 6)
## [1] 1 NA 6
連続する整数のベクトルを生成するにはコロン :
を使うのが便利.
1:5
## [1] 1 2 3 4 5
100:105
## [1] 100 101 102 103 104 105
ベクトル同士を繋げることもできる.
c(1, 5:7)
## [1] 1 5 6 7
c(c(1, 2), 5:7)
## [1] 1 2 5 6 7
ベクトルの要素をすべて足し合わせる.
sum(c(1, 2, 6)) # sum of 1, 2, 6
## [1] 9
ベクトルもスカラーと同様にオブジェクトに代入することができる.
x <- c(1, 2, 6) # assign vector to object "x"
x
## [1] 1 2 6
sum(x) # sum of 1, 2, 6
## [1] 9
x + 10
## [1] 11 12 16
ベクトルの特定の要素を抽出するには,min
(ベクトルの要素のうち最小の値を返す関数)のような関数を使ったり,あるいは
[ ]
を使って何番目の要素かを直接指定する方法がある.
min(x) # minimum value
## [1] 1
max(x) # maximum value
## [1] 6
x[2] # extract 2nd value
## [1] 2
x[c(2, 3)] # extract 2nd and 3rd values
## [1] 2 6
x[2:3] # same as above
## [1] 2 6
特定の条件を満たす要素のみを抽出することもできる. 「等しい」は
==
(等号が2つ),「等しくない」は !=
(エクスクラメーションマークと等号)を使う.
注:等号1つ =
は(<-
と同様に)代入を表す演算記号なので要注意.
x[x > 1]
## [1] 2 6
x > 1 # logical index
## [1] FALSE TRUE TRUE
x[x == 2] # "==" means `equal to`
## [1] 2
x[x != 2] # "!=" means `not equal to`
## [1] 1 6
cf. 論理演算
1 > 0
## [1] TRUE
c(1, 2, 6) > 1
## [1] FALSE TRUE TRUE
1 == 0.5 + 0.5 # equal
## [1] TRUE
2 != 1 # not equal
## [1] TRUE
!(1 > 0) # "!" = logical negation
## [1] FALSE
1 > 0 & 2 == 1 # TRUE AND FALSE
## [1] FALSE
1 > 0 | 2 == 1 # TRUE OR FALSE
## [1] TRUE
特定の要素に別の値を代入して上書きすることもできる.
x
## [1] 1 2 6
x[2] <- 100
x
## [1] 1 100 6
複数のベクトルに対して演算することもできる.
sum(c(1, 2, 6) - 4:6) # sum of 1-4, 2-5, 6-6
## [1] -6
x <- c(1, 2, 6)
x2 <- c(1, 3, 4)
x + x2
## [1] 2 5 10
ベクトルの内積(スカラー積)は %*%
で計算される(\(\mathbf{x}'\) は \(\mathbf{x}\) の転置).
\[ (\mathbf{x}, \mathbf{x_2}) = \mathbf{x}' \mathbf{x_2} = \left[ \matrix{1 & 2 & 6} \right] \left[ \matrix{1 \\ 3 \\ 4} \right] = 1 \times 1 + 2 \times 3 + 6 \times 4 = 1+6+24 = 31 \]
x %*% x2
## [,1]
## [1,] 31
要素ごとの積は *
で計算される.
x * x2
## [1] 1 6 24
ベクトルとスカラーの積はベクトルの各要素とスカラーの積のベクトルとして計算される.
x * 10
## [1] 10 20 60
文字列のベクトルを作成することもできる.
beatles_name <- c("John", "Paul", "George", "Ringo")
1行に複数のコマンドを書く場合は「;
」で繋ぐ.
x; x + x2 + 1
## [1] 1 2 6
## [1] 3 6 11
ベクトルを束ねて行と列からなるデータフレームを作成できる. ただし,ベクトルの各要素は互いに対応していなければならない(例:1つ目のベクトルのn番目の要素と,2つ目のベクトルのn番目の要素は,同じ人や同じ企業のデータが割り当てられている).
データフレームを作成するには data.frame
関数を使い,引数として「列名(変数名) = ベクトルのオブジェクト
」を指定する.
beatles_name <- c("John", "Paul", "George", "Ringo")
beatles_born <- c(1940, 1942, 1943, 1940) # year of birth
beatles_decease <- c(1980, NA, NA, NA) # year of death
beatles_height <- c(179, 180, 178, 170) # in cm
beatles <- data.frame(name = beatles_name, born = beatles_born, decease = beatles_decease,
height = beatles_height)
beatles
## name born decease height
## 1 John 1940 1980 179
## 2 Paul 1942 NA 180
## 3 George 1943 NA 178
## 4 Ringo 1940 NA 170
以下のように作成することもできる.
beatles2 <- data.frame(name = c("John", "Paul", "George", "Ringo"), born = c(1940, 1942, 1943, 1940),
decease = c(1980, NA, NA, NA), height = c(179, 180, 178, 170))
beatles2
## name born decease height
## 1 John 1940 1980 179
## 2 Paul 1942 NA 180
## 3 George 1943 NA 178
## 4 Ringo 1940 NA 170
データフレームの特定の要素を抽出するには, [ ]
を使って何行目・何列目かを指定したり,あるいは「データフレーム名$列名
」のように
$
(ドル)記号を使って列名(変数名)を指定する.
beatles[1, 2] # 1st row (John) and 2nd column (born)
## [1] 1940
beatles[1:2, 2:3]
## born decease
## 1 1940 1980
## 2 1942 NA
beatles[1:2, c("born", "decease")] # same as above
## born decease
## 1 1940 1980
## 2 1942 NA
beatles[1, ] # 1st row (John)
## name born decease height
## 1 John 1940 1980 179
beatles[, 2] # 2nd column (born)
## [1] 1940 1942 1943 1940
beatles[, "born"] # same as above
## [1] 1940 1942 1943 1940
beatles$born # column named "born" (year of birth)
## [1] 1940 1942 1943 1940
str
関数で行数(サンプルサイズ),列数(変数の数),各列のデータの型(文字列,数字,etc.)を簡単に確認できる.
str(beatles)
## 'data.frame': 4 obs. of 4 variables:
## $ name : chr "John" "Paul" "George" "Ringo"
## $ born : num 1940 1942 1943 1940
## $ decease: num 1980 NA NA NA
## $ height : num 179 180 178 170
注:上のオブジェクトは十分に小さいため str
関数を使うまでもないが,サイズの大きいオブジェクトを確認する際にはとても便利.
スカラーやベクトルのオブジェクトの値を変更する場合と同様に
<-
で上書きできる.
beatles[3, "decease"] <- 2001
beatles
## name born decease height
## 1 John 1940 1980 179
## 2 Paul 1942 NA 180
## 3 George 1943 2001 178
## 4 Ringo 1940 NA 170
「データセット$新しい変数の名前 <- 新しい変数の中身(ベクトルなど)
」
のようにして追加できる.
beatles$primary_role <- c("vocal", "vocal", "guitar", "drum")
beatles
## name born decease height primary_role
## 1 John 1940 1980 179 vocal
## 2 Paul 1942 NA 180 vocal
## 3 George 1943 2001 178 guitar
## 4 Ringo 1940 NA 170 drum
既存の変数を利用して新しい変数を作成することもできる.
たとえば,デビュー時(1962年)の年齢は「1962 - 出生年」で計算できるので,以下のようにコーディングすればよい.
beatles$age_at_debut <- 1962 - beatles$born
beatles
## name born decease height primary_role age_at_debut
## 1 John 1940 1980 179 vocal 22
## 2 Paul 1942 NA 180 vocal 20
## 3 George 1943 2001 178 guitar 19
## 4 Ringo 1940 NA 170 drum 22
swiss
/ サンプルデータRには幾つかのサンプルデータが既に含まれている(data()
で列挙).
swiss
は1888年のスイスにおける出生率と社会経済変数のデータセット. Province
レベルで集計されている.
str(swiss)
## 'data.frame': 47 obs. of 6 variables:
## $ Fertility : num 80.2 83.1 92.5 85.8 76.9 76.1 83.8 92.4 82.4 82.9 ...
## $ Agriculture : num 17 45.1 39.7 36.5 43.5 35.3 70.2 67.8 53.3 45.2 ...
## $ Examination : int 15 6 5 12 17 9 16 14 12 16 ...
## $ Education : int 12 9 5 7 15 7 7 8 7 13 ...
## $ Catholic : num 9.96 84.84 93.4 33.77 5.16 ...
## $ Infant.Mortality: num 22.2 22.2 20.2 20.3 20.6 26.6 23.6 24.9 21 24.4 ...
最も基本的な描画は plot
関数を使った散布図.
plot(x = swiss$Education, y = swiss$Fertility)
追加の引数を指定することで,グラフのタイトル,X軸・Y軸のラベル,マーカーの種類,色などを変更できる.
plot(x = swiss$Education, y = swiss$Fertility, pch = 20, col = "blue",
main = "Fertility vs. Education", xlab = "Education (% beyond primary school)", ylab = "Fertility")
複数のパネルを並べる場合は par(mfrow = c(行数, 列数))
を実行してから plot
コマンドを実行する.
par(mfrow = c(1, 2))
plot(x = swiss$Education, y = swiss$Fertility, pch = 20)
plot(x = swiss$Education, y = swiss$Examination, pch = 20)
Tips: plot
周りで何らかのエラーが生じたら,dev.off()
で一旦描画デバイスを閉じるとうまくいくことがある.
例としてタイタニック号の乗客データ titanic3_csv.csv
を読み込む.
元データは http://biostat.mc.vanderbilt.edu/DataSets (既にリンク切れ)から取得したもので,名前などの一部変数を除外している.
参照:Titanic:タイタニック号乗客者の生存状況(年齢や性別などの13項目)の表形式データセット
pclass
: 旅客クラスsurvived
: = 1 if survived, = 0 if not survivedsex
: female or maleage
: 年齢sibsp
:
同船する兄弟(siblings)と配偶者(spouses)の数parch
:
同船する親(parents)と子供(children)の数embarked
: 出港地(C=Cherbourg(仏・シェルブール),
Q=Queenstown, S=Southampton)read.csv
Step 1. 授業のMoodleページまたは GitHub から CSV ファイルをダウンロードして適当なフォルダに保存する. たとえばCドライブ直下の「ws_stat」(workspace for statistics) フォルダに保存する.
Step 2. setwd
関数を使って保存したフォルダを作業ディレクトリとして指定する.
getwd
関数で指定された作業ディレクトリを確認できる(カッコの中には何も書かない).
Step 3. read.csv
関数でファイル名を引数として指定して読み込む.
setwd("c://ws_stat") # set working directory
getwd() # get working directory
## [1] "c:/ws_stat"
titanic <- read.csv("titanic3_csv.csv")
注:.rmd ファイルを開いてチャンクごとに実行する場合,チャンクの実行が終わると作業ディレクトリがリセットされる.
ファイルに日本語が含まれるとエラーが出る場合があるので,初心者のうちは日本語を含めずにファイルを作成・使用するのがおすすめ.
read.csv
+ file.choose
作業ディレクトリの設定がうまくできない場合は,次の行を実行してCSVファイルを読み込む.実行すると「ファイルを選択」画面が出てきて,そこから読み込むCSVファイルを選択することができる.
titanic <- read.csv(file.choose())
read.csv
+ external URL linkウェブ上の CSV ファイルや TXT ファイルを直接読み込むこともできる.
titanic <- read.csv("https://raw.githubusercontent.com/kurodaecon/bs/main/data/titanic3_csv.csv")
先ほど取り上げた str
関数を利用してデータフレームの構造を確認したり,head
関数を利用して最初の数行(デフォルトは6行)のみを表示させる.
str(titanic)
## 'data.frame': 1309 obs. of 8 variables:
## $ pclass : int 1 1 1 1 1 1 1 1 1 1 ...
## $ survived: int 1 1 0 0 0 1 1 0 1 0 ...
## $ sex : chr "female" "male" "female" "male" ...
## $ age : num 29 0.92 2 30 25 48 63 39 53 71 ...
## $ sibsp : int 0 1 1 1 1 0 1 0 2 0 ...
## $ parch : int 0 2 2 2 2 0 0 0 0 0 ...
## $ fare : num 211 152 152 152 152 ...
## $ embarked: chr "S" "S" "S" "S" ...
head(titanic)
## pclass survived sex age sibsp parch fare embarked
## 1 1 1 female 29.00 0 0 211.3375 S
## 2 1 1 male 0.92 1 2 151.5500 S
## 3 1 0 female 2.00 1 2 151.5500 S
## 4 1 0 male 30.00 1 2 151.5500 S
## 5 1 0 female 25.00 1 2 151.5500 S
## 6 1 1 male 48.00 0 0 26.5500 S
View
関数を使うとデータセット全体を表示するウィンドウが表示される.
View(titanic)
Rで加工したデータセットなどを CSV などのファイル形式で出力することができる.
先ほど setwd
で指定した作業ディレクトリに出力される.
titanic_head <- head(titanic)
write.csv(titanic_head, "titanic_first_6_rows.csv")
Case 1
のコードを実行するとデフォルトで指定されている作業ディレクトリに出力される.
デフォルトのディレクトリは先述のとおり getwd()
で確認できる.
先に保存先フォルダを作成する(例:ws_stat 直下の new_dir フォルダ).
titanic_head <- head(titanic)
write.csv(titanic_head, "c://ws_stat/new_dir/titanic_first_6_rows.csv")
log
や exp
のような既に定義されている関数の他に,自作の関数を定義して使用することができる.
例:引数の二乗を返す関数
return_squared <- function (x) {
x^2
}
return_squared(x = 5)
## [1] 25
西暦が4で割り切れる年は原則として閏年だが,「100で割り切れて,かつ,400で割り切れない」場合は例外的に閏年ではない.
「割り切れる」とは「割り算のあまりが0」ということ.割り算のあまりは
割られる数 %% 割る数
で求められる.
2024 %% 4
## [1] 0
2024 %% 100
## [1] 24
2024 %% 400
## [1] 24
また,ある条件を満たすかどうかによって異なる処理を行うには
if, elase
を使う.
if
関数の引数(条件分岐の条件)には論理値(TRUE
または
FALSE
)が与えられる.
TRUE
の場合にのみ if
の { }
の中が実行されるFALSE
の場合には else
の { }
の中が実行されるTips. for
文の中で数字や文字などを出力するには
print
関数が使える.
if (1 > 0) {
print("A")
} else {
print("B")
}
## [1] "A"
よって,以下のように関数を作成すればよい.
Tips. if
文は入れ子にすることができる.
examine_leap <- function (year) {
if (year %% 4 == 0) {
if (year %% 100 == 0 & year %% 400 != 0) {
print("Not leap year")
} else {
print("Leap year")
}
} else {
print("Not leap year")
}
}
examine_leap(year = 2024)
## [1] "Leap year"
examine_leap(year = 2100)
## [1] "Not leap year"
examine_leap(year = 2400)
## [1] "Leap year"
for
文を使うことでほとんど同じ計算を繰り返し計算することができる.
i
というオブジェクトに in
のあとのベクトルの要素を順次代入して計算する.つまり,
i
に 1 が代入されて { }
の中が実行され,i
に 2 が代入されて { }
の中が実行され,i
に 3 が代入されて { }
の中が実行されるfor (i in 1:3) {
print(i)
}
## [1] 1
## [1] 2
## [1] 3
for
文の中で何らかの演算をしてもよい.
\[ \sum_{i=1}^{3} i = 1 + 2 + 3 = 6 \]
累積の値を格納するオブジェクト i_cumulative
を作成して,{ }
の中でこのオブジェクトの値を更新する.
i_cumulative <- 0 # initialize
for (i in 1:3) {
i_cumulative <- i_cumulative + i
print(i_cumulative)
}
## [1] 1
## [1] 3
## [1] 6
自作の関数と組み合わせて使ってもよい.
まずは,閏年のときに TRUE
を返す関数を定義.
is_leap <- function (year) {
if (year %% 4 == 0 & !(year %% 100 == 0 & year %% 400 != 0)) {
TRUE
} else {
FALSE
}
}
そもそも,if
文の条件の TRUE/FALSE と返り値の TRUE/FALSE
は対応しているので,if
文を使わずに以下のように書けばよい.
is_leap <- function (year) {
year %% 4 == 0 & !(year %% 100 == 0 & year %% 400 != 0)
}
この関数を for
文の中で使う.
for (y in 2090:2110) {
if (is_leap(year = y)) {
print(y)
}
}
## [1] 2092
## [1] 2096
## [1] 2104
## [1] 2108
Tips. { }
の中が1行だけの場合は { }
を省略できる.
for (y in 2090:2110) if (is_leap(year = y)) print(y)
(出力は省略)
ベクトルを束ねて行列を作成できる.
\[ \left[ \left[ \matrix{1 \\ 2 \\ 3} \right] , \left[ \matrix{5 \\ 6 \\ 7} \right] \right] = \left[ \matrix{1 & 5 \\ 2 & 6 \\ 3 & 7} \right] \]
cbind(c(1, 2, 3), c(5, 6, 7)) # bind by columns
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
rbind(c(1, 2, 3), c(5, 6, 7)) # bind by rows
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 5 6 7
matrix
関数で作成することもできる.
mat <- matrix(c(1, 2, 3, 5, 6, 7), nrow = 3, ncol = 2)
mat
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
mat2 <- matrix(c(1, 2, 3, 5, 6, 7), nrow = 2, ncol = 3, byrow = TRUE)
mat2
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 5 6 7
要素の抽出.
mat[2, 2]
## [1] 6
要素の書き換え.
mat[2, 2] <- 100
mat
## [,1] [,2]
## [1,] 1 5
## [2,] 2 100
## [3,] 3 7
(i, j) 要素と (j, i) 要素を入れ替える.
\[ \left[ \matrix{1 & 5 \\ 2 & 6 \\ 3 & 7} \right]' = \left[ \matrix{1 & 2 & 3 \\ 5 & 6 & 7} \right] \]
mat <- matrix(c(1, 2, 3, 5, 6, 7), nrow = 3, ncol = 2)
t(mat)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 5 6 7
行列の積は %*%
で計算できる.
\[ \left[ \matrix{1 & 5 \\ 2 & 6 \\ 3 & 7} \right] \left[ \matrix{0.1 & 0.2 & 0.3 \\ 0.5 & 0.6 & 0.7} \right] \\ = \left[ \matrix{1 \times 0.1 + 5 \times 0.5 & 1 \times 0.2 + 5 \times 0.6 & 1 \times 0.3 + 5 \times 0.7 \\ 2 \times 0.1 + 6 \times 0.5 & 2 \times 0.2 + 6 \times 0.6 & 2 \times 0.3 + 6 \times 0.7 \\ 3 \times 0.1 + 7 \times 0.5 & 3 \times 0.2 + 7 \times 0.6 & 3 \times 0.3 + 7 \times 0.7 } \right] = \left[ \matrix{2.6 & 3.2 & 3.8 \\ 3.2 & 4 & 4.8 \\ 3.8 & 4.8 & 5.8 } \right] \]
mat <- matrix(c(1, 2, 3, 5, 6, 7), nrow = 3, ncol = 2)
mat
## [,1] [,2]
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
mat2 <- matrix(c(0.1, 0.2, 0.3, 0.5, 0.6, 0.7), nrow = 2, ncol = 3, byrow = TRUE)
mat2
## [,1] [,2] [,3]
## [1,] 0.1 0.2 0.3
## [2,] 0.5 0.6 0.7
mat %*% mat2
## [,1] [,2] [,3]
## [1,] 2.6 3.2 3.8
## [2,] 3.2 4.0 4.8
## [3,] 3.8 4.8 5.8
以下を満たすような行列 \(\mathbf{A}^{-1}\) を \(\mathbf{A}\) の逆行列と呼ぶ.
\[ \mathbf{A} \mathbf{A}^{-1} = \mathbf{A}^{-1} \mathbf{A} = \mathbf{E} = \left[ \matrix{1 & 0 & 0 & \cdots \\ 0 & 1 & 0 & \cdots \\ 0 & 0 & 1 & \cdots \\ \vdots & \vdots & \vdots & \ddots } \right] \]
2×2 の行列については次のように計算できる.
\[ \left[ \matrix{1 & 3 \\ 2 & 4 } \right]^{-1} = \frac{1}{1 \times 4 - 3 \times 2} \left[ \matrix{4 & -3 \\ -2 & 1} \right] = \left[ \matrix{-2 & 1.5 \\ 1 & -0.5} \right] \]
逆行列は solve
で計算できる.
mat3 <- matrix(1:4, nrow = 2)
solve(mat3)
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
元の行列との積を取れば単位行列になるはず.
\[ \left[ \matrix{1 & 3 \\ 2 & 4 } \right] \left[ \matrix{-2 & 1.5 \\ 1 & -0.5} \right] = \left[ \matrix{-2 & 1.5 \\ 1 & -0.5} \right] \left[ \matrix{1 & 3 \\ 2 & 4 } \right] = \left[ \matrix{1 & 0 \\ 0 & 1} \right] \]
mat3 %*% solve(mat3) # should be identity matrix
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
solve(mat3) %*% mat3
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
行列の determinant (行列式)が 0 の場合は逆行列を計算できない.
\[ \det \left[ \matrix{1 & 0 \\ 1 & 0 } \right] = 1 \times 0 + 0 \times 1 = 0 \]
solve(matrix(c(1, 1, 0, 0), nrow = 2))
(エラーが出る)
?関数名
または help(関数名)
オブジェクト名 <- 中身(スカラー or ベクトル or データフレーム or 行列 etc.)
read.csv(ファイル名)
.
1.2 Comment out / コメントアウト
#
記号から後ろはコメントアウトされる(=実行されない). 自分用のメモを書いておくのに便利.