x = 2980
のようにして作った変数はワークスペースに溜まっていく。
ワークスペース .RData
は保存しない、読み込まないのが安全。
New Project > New Directory > ~/project/nagoya2018
データ、スクリプト、結果を分離する。
(Excelで作業するとゴチャマゼになりがち)
例えばこんな感じのディレクトリ(=フォルダ)構造を目指す:
nagoya2018/ # プロジェクトの最上階
├── data/ # 元データを置くところ
│ ├── iris.tsv
│ └── diamonds.xlsx
├── nagoya2018.Rproj # これダブルクリックでRStudioを起動
├── hello.R
├── output/ # 結果の出力先
│ ├── iris-petal.png
│ └── iris-summary.tsv
├── transform.R # データ整理・変形のスクリプト
└── visualize.R # 作図のスクリプト
プロジェクト最上階を作業ディレクトリとし、
ファイル読み書きの基準にする。(後で詳しく)
途中まで書いて tab を押すと、続きを提案・補完してくれる。
実行したい部分を選択して ctrl-return 。
NULL
: 空っぽTRUE
or FALSE
)42L
と 実数 3.1416
)"a string"
)NA
も定義されてる1個の値でもベクトル扱い。
同じ長さ(または長さ1)の相手との計算が得意。
x = c(2, 8, 6) # 長さ3の数値ベクトル
x + x # 同じ長さ同士の計算
[1] 4 16 12
y = 42 # 長さ1の数値ベクトル
x + y # 長さ3 + 長さ1 = 長さ3 (それぞれ足し算)
[1] 44 50 48
# こういうfor文は書かずに済む
z = c(0, 0, 0)
for (i in seq_len(3)) {
z[i] = x[i] + y
}
iris
はアヤメ属3種150個体に関する測定データ。
Rに最初から入ってて、例としてよく使われる。
print(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<dbl> <dbl> <dbl> <dbl> <fct>
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
--
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
長さ150の数値ベクトル4本と因子ベクトル1本。
install.packages("readr") # R標準の read.table() とかは難しいので
library(readr) # パッケージのやつを使うよ
readr::write_tsv(iris, "data/iris.tsv")
readr::read_tsv("data/iris.tsv")
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
<dbl> <dbl> <dbl> <dbl> <chr>
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
--
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
readxlパッケージを使うとExcelファイルも読み込める。
便利な関数やデータセットなどをひとまとめにしたもの。
install.packages("readr") # 一度やればOK
library(readr) # 読み込みはRを起動するたびに必要
update.packages() # たまには更新しよう
Rでデータを上手に扱うためのパッケージ群
install.packages("tidyverse")
library(tidyverse)
# 関連パッケージが一挙に読み込まれる
たくさんありすぎて選べない?
まずは人気のパッケージを https://awesome-r.com/ で探してみるとか。
?sum
, help.start()
str(iris)
, attributes(iris)
No such file or directory
#r_beginners
, #statistics