R 関数の目次
UB3/informatics/R_functions
このページの最終更新日: 2024/10/22R 関数の目次です。「データフレームから特定の列・行を抽出する」のような「作業内容による目次」は R の目次 をご覧ください。
- システム系の関数
- パッケージ系の関数
- 数を発生させる関数
- オブジェクトの書き出し、読み込みを行う関数
- オブジェクトの情報を表示する関数
- オブジェクト自体を操作する関数
- オブジェクトの中身を操作する関数
- 図形描画に使える関数
- 統計検定に使える関数
システム系の関数
作業ディレクトリ、R オブジェクトではない一般的なファイルの操作などに関する関数。
sessionInfo() |
現在の使用環境を表示する。 |
getwd() |
作業ディレクトリを表示。現在のパスと考えて良い。 |
setwd() |
作業ディレクトリを指定する。" " で囲むのを忘れがちなので注意。 |
list.files() |
作業ディレクトリには、R のデータであるオブジェクト以外のファイルもある。それらの一覧を表示する (参考)。Mac shell script の ls 関数 に相当するだろう。 list.files(./フォルダ名) のような使い方も可能。 file 操作に関係する関数も一覧にしておく。
|
dir.create() | dir.create("name") でディレクトリを作成する。 |
system.time() | プロセスにかかった時間を出力する。user, system, elasped の 3 つが表示され、elasped が実際の実行時間となる。単位は秒である。 |
capabilities() | libxml, X11, cairo などのツールが使えるかどうかの一覧を表示する。 |
quit() | R を終了する。 |
パッケージ系の関数
パッケージ操作に関する関数。
install.packages() | パッケージをインストールする。詳細は R のパッケージ: Install, CRAN の使い方など を参照のこと。 install.packages("パッケージ名") で良いが、install.packages("パッケージ名", dependensies = TRUE) とすると、依存関係のあるパッケージもまとめてインストールできる。 |
remove.packages() |
remove.packages("パッケージ名") で、特定のパッケージを取り除く。 |
library() | どのようなパッケージが用意されているかを見る。 library(パッケージ名): たとえば library(outliers) で、outliers という名前のパッケージを呼び出す。 |
require() |
require(パッケージ名) でパッケージを呼び出す。library と極めて近く、違いはパッケージが存在しないときに処理を続行するかどうか。library は止まり、require は止まらない。 |
オブジェクトの書き出し、読み込みを行う関数
saveRDS readRDS |
saveRDS(object, file = "filename.obj") として、オブジェクトを拡張子 obj のファイルとして保存する。 読み込む場合は、A = readRDS(file, refhook = NULL) とすることで、ファイルの内容が A というオブジェクトとして保存される。 |
save.image() | 全てのオブジェクトを保存する。デフォルトでは .RData という不可視ファイルに保存される。save.image(file = "abc.RData") のようにファイル名を指定するとよい。 RStudio を閉じるときに Save workspace image to ... と聞かれるが、これは save.image() と同じことである。 ファイルを右クリックして RStudio で開けるが、スクリプト中で読み込むなら load を使用する。 |
assign() |
assign(A, B) で、A に B を代入する (B を割り振る)。 具体的には、for loop を回して assign(variable, 計算結果) とすると、各ループの結果をそれぞれ違う名前でオブジェクトとして保存できる。 |
データフレームを csv ファイルに書き出す。 |
|
read.csv() |
R デフォルトの csv ファイルを読み込むための関数。データフレームとして読み込むようで、これが都合が悪いので read_csv を使うように推奨しているページがある (参考)。 csv ファイルを tibble として読み込む。readr パッケージに含まれている。 |
read.delim() |
スペースなどで区切られたテキストファイルを読み込む。 |
write() |
write(x, file = "filename") で、オブジェクト x の内容をファイルに書き出す。
|
オブジェクトの情報を表示する関数
str() | str(dataframe) でデータフレームの情報を表示する。各列が text, numeric... などを表示してくれる。 |
dim() | データフレームの次元を表示する。行数 (obs) 列数 (variables) の順に表示される。 |
identical() | identical(A, B) で、ベクター A と B が同一であるかを TRUE or FALSE で返す。 |
is.numeric() | is.numeric(A) で、ベクター A が数値であるかを TRUE or FALSE で返す。ベクター専用であり、A がデータフレームだと FALSE になるので注意。R の数値には、整数 integer と浮動小数点数 double という 2 つのタイプがある。 |
オブジェクト自体を操作する関数
ls() | Mac の ls と同様、ワークスペース内のオブジェクト一覧を表示。 () の中にオブジェクトを入れると、その列などが表示される。 |
mode() | オブジェクトがベクターのとき、そのモードを表示する。データ型 を参照。 |
unlist() | リストをベクターに変換する。List 形式のデータの一部を取り出すと、取り出されたデータもリストになり、そのまま計算に使えない。unlist する必要がある。 経験上、dataframe ではあまりうまくいかない。数値のデータフレームがうまく認識されず、write.csv で書き出し、それを read.csv で読み込んだら解決したことがある。 |
rm() |
オブジェクトを削除する。shell とは異なり、ワイルドカード * が使えない。
|
print() |
オブジェクトを出力する。write.csv のような関数を使う場面の方が多いかもしれない。 |
summary() |
オブジェクトのサマリーを表示する。数値データに使うと平均値、標準偏差などが計算されるが、たとえば統計検定の結果をオブジェクトに保存して、summary で内容を見るように使うこともある。 |
t() |
オブジェクトの行列を入れ替える。データフレームでなくなってしまうことがあるので、data.frame(t(A)) または t(A) %>% as.data.frame() とすることも多い。 |
data() |
data() で読み込めるデータの一覧を取得し、data(データ名) でそのデータを読み込む。「読み込む」とは、オブジェクトとしてワークスペースに保存するということ。 |
data.frame() |
データフレームを作成。 |
c() |
ベクターを作成。A = c(1,2,3,4,5) のようにして、オブジェクト A に 1-5 を入れる。A は 1 次元のベクターになる。 |
matrix() |
行列を作成。 |
rbind, cbind |
行列を結合する。rbind は行列を縦に、cbind は横に繋げる。 |
数を発生させる関数
seq() |
seq(最初の数, 最後の数, 間隔) で連続する数を指定。 A = c(seq(1, 5, 1)) でオブジェクト A に 1-5 を入れる。 seq(from = 10, to = 1, by = -1) と書けば逆順にできる。by = -1 は含めなくても逆順になる。ただし、seq(10:1) では昇順になってしまう。さらに、from = 1, to = 10, by = -1 では、数の大小と符号の向きが一致していないのでエラーになる。from, to, by を入れて覚えた方がわかりやすいだろう。 |
rep() |
rep(繰り返すもの, 繰り返し数) で繰り返しを作る。c(rep("A", 10)) なら文字列 A の繰り返しになる。 A = c(1, 2, 3) というベクターに対して rep(A, 3) とすると、1 2 3 1 2 3 1 2 3 のようにベクターが 3 回繰り返される。 R による塩基配列解析 で、ランダムな配列を生成するのに使用している。 |
rnorm |
正規分布 を作成する。A = rnorm(10, 0, 1) のように、サンプル数、平均値および標準偏差を指定する。 |
runif |
runif(n, min, max) で、離散型一様分布の乱数を発生させる。 |
オブジェクトの中身を操作する関数
tidyverse パッケージに含まれる関数
tidyverse は単独のパッケージでなく、モダンなデータ分析を可能にするパッケージがまとめられたものである。詳細は tidyverse のページ を参照のこと。
データフレームから、指定した通りに列 (select) または行 (filter) を抜き出す。 |
|
データフレームに、新たに変数 (基本的には列) を追加する。外部ベクターを指定する場合は、当然だが行の数が違うとエラーになる。 mutate(dataframe, 追加する列名1 = vector, 追加する列名2 = vector...) のような形。既存の列名を使えば、列の入れ替えも可能。 |
|
str 系の関数 |
str_pad(): str_pad(string, width, side = c("left", "right", "both"), pad = " ")) で、string の幅を width 分だけ side 方向に伸ばし、pad で指定した文字で埋める。 str_sub(): 決まった文字数だけ削る。str_sub(vector, start = 数字, end = 数字) で、vector の各要素から数字の部分を選択する。 |
データフレームの形を、縦長、横長に変換する。 |
|
データフレームまたは行列に対し、行ごとまたは列ごとに、特定の演算を行う。 |
|
データフレームの行をソートする関数。R 標準の order よりもはるかに使いやすい。 |
|
full_join, left_join, inner_join などがある。inner_join の場合、2 つのデータセットで、ある列を基準として共通に存在するものだけを結合する。 bind_cols, bind_rows という関数もある。 |
|
slice |
行番号で行を抽出する。slice(dataframe, 1) など。 |
外部ベクターを参照して、データフレームの行の順番を変えるなど。 |
その他の関数
desc() |
文字列の逆順にソートするときに、arrange と組み合わせて使用した。arrange だけだと、数値で逆順のソートは - をつけて列指定すればできるが、これは文字列カラムでは動かない。desc を使う必要がある。 |
データフレームから、列をベクターとして抽出する。df$A とすると、df というデータフレームから A の列を抽出できるが、抽出された A もまたデータフレームとなる。df %>% pull(A) のようにすると、ベクターとして抽出できる。 行をベクターとして抽出する場合は、この方法ではうまくいかないので、リンク先の関数のページを参照のこと。 |
|
gsub() |
sub("置換前の文字列", "置換後の文字列", データフレーム) で、データフレーム内の文字列を置換。条件に合う文字列の |
paste() |
文字列操作の関数。複数の文字列を連結して、1 つの文字列にする。引数がベクトルの場合、それぞれの要素ごとに連結する (参考)。間に挟む文字列は、sep または collapse (ベクトルの場合) で指定する。"" として空を指定すれば、連続した文字列になる。 |
paste0() |
連続した文字列としてペーストする。スクリプトに変数が含まれ、それをファイル名に含めて出力したいときwrite.csv(paste0(variable), ".pdf") によく使っている。変数を結果に含めつつ for loop を回すときにも便利。 |
sample() |
無作為抽出を行う関数。 |
abs() |
abs(数値) で絶対値を返す。 |
sort() |
sort(ベクター) で並べ替える。 |
scale() |
データを標準化する。つまり、平均値 = 0、標準偏差 = 1 のデータに変換する。scale(vector) でよい。全て同じ値だったり、標準化できないベクターは全て NaN になるので注意。 |
計算しつつ値をまとめる。たとえば、グループ A, B, C が割り振られたデータが 10 個あるとき、A は 5 個、B は 3 個・・・などとカウントできる。 |
|
names() |
colnames(データフレーム) のようにして列名を返す。names でも同じ結果になり、違いはよくわからない。rownames の場合は行名を返す。 colnames(A) <- vector のようにして、ベクターで列名や行名を変更することができる。もちろんこの場合、A の列の数と vector の要素の数が一致していないとエラーになる。詳細は データフレームの行名、列名を扱う を参照のこと。 |
round() |
値を丸める関数。切り上げと切り下げが ceiling と floor なのが面白い。 |
図形描画に使える関数
plot(X, Y) のようにオブジェクト X, Y の散布図を作る。 |
|
barplot(A) |
オブジェクト A の棒グラフを描画する。→ R を使った棒グラフの作り方 |
boxplot(A) |
オブジェクト A の箱ひげ図を描画する。 |
hist(A) |
オブジェクト A のヒストグラムを表示。→ R を使ったヒストグラムの作り方 |
abline() |
グラフに回帰直線を追加する。lm などの結果を収めたオブジェクトを指定する。 |
venn.diagram(A) |
オブジェクト A のベン図を作成する。→ R を使った図の作成 から「ベン図の作成」を参照のこと。 |
heatmap() |
heatmap(A) で、オブジェクト A のヒートマップを作成する。このほか、heatmap2 や pheatmap という関数もある。→ R を使ったヒートマップの作り方 |
par() |
グラフの重ね書き。例えば plot の次に par(new = T) として、もう一つグラフを重ねられる。plot のページに詳細あり。軸などの設定に注意。 |
split.screen() |
グラフを並べて表示する。グラフを並べて表示する を参照。 |
png() |
グラフをさまざまなファイル形式でグラフを出力する関数である。詳細は R グラフをファイルとして保存する を参照のこと。 |
統計検定に使える関数
t.test(A, B) |
ベクトル A, B に対して t 検定 をかける。 |
cor(A, B) |
ベクトル A, B に対して 相関分析。相関係数と P 値などの算出。 |
grubbs.test(A) |
オブジェクト A に対して外れ値の検定 Grubbs test をかける。 |
lm() |
|
set.seed() |
正則化回帰 などでランダムな seed を使う関数では、繰り返すと違う結果が返ってくる。これが嫌な場合は、set.seed(1) のように seed の値を指定する。数値は基本的に何でも良いはず (参考)。 |
多重検定などで p 値を補正する場合に使用。 |
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。