R 関数の目次

UB3/informatics/R_functions

このページの最終更新日: 2024/04/14


R 関数の目次です。「データフレームから特定の列・行を抽出する」のような「作業内容による目次」は R の目次 をご覧ください。



  1. システム系の関数
  2. パッケージ系の関数
  3. 数を発生させる関数
  4. オブジェクトの書き出し、読み込みを行う関数
  5. オブジェクトの情報を表示する関数
  6. オブジェクト自体を操作する関数
  7. オブジェクトの中身を操作する関数
  8. 図形描画に使える関数
  9. 統計検定に使える関数

システム系の関数

作業ディレクトリ、R オブジェクトではない一般的なファイルの操作などに関する関数。

sessionInfo()

現在の使用環境を表示する。

getwd()

作業ディレクトリを表示。現在のパスと考えて良い。

setwd()

作業ディレクトリを指定する。" " で囲むのを忘れがちなので注意。

list.files()

作業ディレクトリには、R のデータであるオブジェクト以外のファイルもある。それらの一覧を表示する (参考)。Mac shell script の ls 関数 に相当するだろう。 list.files(./フォルダ名) のような使い方も可能。

file 操作に関係する関数も一覧にしておく。

  • file.path ('a.txt'): a.txt というファイルのパスを表示
  • file.info ('a.txt'): ファイル情報を表示
  • file.create ('a.txt'): a という名前のファイルを作る
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, 計算結果) とすると、各ループの結果をそれぞれ違う名前でオブジェクトとして保存できる。

write.csv

データフレームを csv ファイルに書き出す。

read.csv()
read_csv()

R デフォルトの csv ファイルを読み込むための関数。データフレームとして読み込むようで、これが都合が悪いので read_csv を使うように推奨しているページがある (参考)。

csv ファイルを tibble として読み込む。readr パッケージに含まれている。

read.delim()

スペースなどで区切られたテキストファイルを読み込む。

write()

write(x, file = "filename") で、オブジェクト x の内容をファイルに書き出す。

  • append = TRUE or FALSE: 上書きするかどうかの指定
  • ncolumns = 1: 書き出すファイルにおける列の数

参考: R 出力の記録45. ファイルへのデータ出力

オブジェクトの情報を表示する関数

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 とは異なり、ワイルドカード * が使えない。

  • 全てのオブジェクトを削除したいときは ls と組み合わせて rm(list=ls()) とする。
  • パターン検索したいときは ls および pattrn と組み合わせて rm(list = ls(pattern = "\\bresults.")) のようにする (参考)。

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 を入れる。

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()

データフレームから、指定した通りに列 (select) または行 (filter) を抜き出す。

mutate()

データフレームに、新たに変数 (基本的には列) を追加する。外部ベクターを指定する場合は、当然だが行の数が違うとエラーになる。

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 の各要素から数字の部分を選択する。

pivot 系の関数

データフレームの形を、縦長、横長に変換する。

apply 系の関数

データフレームまたは行列に対し、行ごとまたは列ごとに、特定の演算を行う。

arrange()

データフレームの行をソートする関数。R 標準の order よりもはるかに使いやすい。

join() 系の関数

full_join, left_join, inner_join などがある。inner_join の場合、2 つのデータセットで、ある列を基準として共通に存在するものだけを結合する。

bind_cols, bind_rows という関数もある。

slice

行番号で行を抽出する。slice(dataframe, 1) など。

その他の関数

desc()

文字列の逆順にソートするときに、arrange と組み合わせて使用した。arrange だけだと、数値で逆順のソートは - をつけて列指定すればできるが、これは文字列カラムでは動かない。desc を使う必要がある。

pull()

データフレームから、列をベクターとして抽出する。df$A とすると、df というデータフレームから A の列を抽出できるが、抽出された A もまたデータフレームとなる。df %>% pull(A) のようにすると、ベクターとして抽出できる。

行をベクターとして抽出する場合は、この方法ではうまくいかないので、リンク先の関数のページを参照のこと。

gsub()
sub()

sub("置換前の文字列", "置換後の文字列", データフレーム) で、データフレーム内の文字列を置換。条件に合う文字列の 最初の 1 個のみ を置換する。全てを置換したいときは gsub を用いる。参考: ベクターの要素を置換する

paste()

文字列操作の関数。複数の文字列を連結して、1 つの文字列にする。引数がベクトルの場合、それぞれの要素ごとに連結する (参考)。間に挟む文字列は、sep または collapse (ベクトルの場合) で指定する。"" として空を指定すれば、連続した文字列になる。

paste0()

連続した文字列としてペーストする。スクリプトに変数が含まれ、それをファイル名に含めて出力したいときwrite.csv(paste0(variable), ".pdf") によく使っている。変数を結果に含めつつ for loop を回すときにも便利。

sample()

無作為抽出を行う関数。

abs()

abs(数値) で絶対値を返す。

sort()

sort(ベクター) で並べ替える。

aggregate()

計算しつつ値をまとめる。たとえば、グループ A, B, C が割り振られたデータが 10 個あるとき、A は 5 個、B は 3 個・・・などとカウントできる。

names()
colnames()
rownames()

colnames(データフレーム) のようにして列名を返す。names でも同じ結果になり、違いはよくわからない。rownames の場合は行名を返す。

colnames(A) <- vector のようにして、ベクターで列名や行名を変更することができる。もちろんこの場合、A の列の数と vector の要素の数が一致していないとエラーになる。詳細は データフレームの行名、列名を扱う を参照のこと。

round()
signif()
ceiling()
floor()

値を丸める関数。切り上げと切り下げが ceiling と floor なのが面白い。


図形描画に使える関数

plot()

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()
pdf()
jpeg()
bmp()
postscript()
pictex()

グラフをさまざまなファイル形式でグラフを出力する関数である。詳細は R グラフをファイルとして保存する を参照のこと。


統計検定に使える関数

t.test(A, B)

ベクトル A, B に対して t 検定 をかける。

cor(A, B)
cor.test(A, B)

ベクトル A, B に対して 相関分析。相関係数と P 値などの算出。

grubbs.test(A)

オブジェクト A に対して外れ値の検定 Grubbs test をかける。

lm()

線形回帰の関数。単回帰分析重回帰分析 のページがある。

set.seed()

正則化回帰 などでランダムな seed を使う関数では、繰り返すと違う結果が返ってくる。これが嫌な場合は、set.seed(1) のように seed の値を指定する。数値は基本的に何でも良いはず (参考)。

p.adjust()

多重検定などで p 値を補正する場合に使用。

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。