R言語
R言語(あーるげんご)はオープンソース・フリーソフトウェアの統計解析向けのプログラミング言語及びその開発実行環境である。
R言語はニュージーランドのオークランド大学のRoss IhakaとRobert Clifford Gentlemanにより作られた。現在ではR Development Core Team(S言語開発者であるJohn M. Chambersも参画している[1]。)によりメンテナンスと拡張がなされている。
なお、R言語の仕様を実装した処理系の呼称名はプロジェクトを支援するフリーソフトウェア財団によれば『GNU R』である[2]が、他の実装形態が存在しないために日本語での慣用的呼称に倣って、当記事では、仕様・実装を纏めて適宜にR言語や単にR等と呼ぶ。
特徴
R言語は文法的には、統計解析部分はAT&Tベル研究所が開発したS言語を参考としており、またデータ処理部分はSchemeの影響を受けている。(S言語は1998年にACMのソフトウェアシステム賞を獲得した。)
ベクトル処理言語
- R言語は、「ベクトル処理」と呼ばれる実行機構により、柔軟な処理を簡便な記法で実現する。R言語で言う「ベクトル」とは数学的用語のベクトルとはやや異なり「構造を持ったデータ集合」という「リスト」に近い意味を持つ。数学的ベクトル・行列のみならず、配列・リスト・テーブル(データフレーム)・集合・時系列などといった複雑な構造を持ったデータも宣言無く変数に納められる。
- ベクトルは複数の要素を持ち得るが、例えば、リストの要素が更にテーブルや時系列の配列などであるといった「入れ子構造」であってよい。このおかげで複雑なデータ構造が他愛もなく構築・管理できる。
- 予約語としてRに組込まれた演算も関数もベクトルを扱える。ユーザー定義関数をベクトル対応にするための関数もある。
- ベクトル処理に拠って演算も関数も特別な制御を要さずベクトルの全要素に作用するため、プログラム全体の制御構造が単純化して意味が明瞭になるという効用が期待できる。上手く使えば、通常他の言語で複数要素を処理する時の「目的とする計算の本質とかけ離れたアルゴリズム(例えば、カウンターを使ったループや条件分岐等)」から解放され得る場合も多い。
例として、円周率をモンテカルロ法で近似する計算を挙げる。(簡約化のために、第一象限のみ計算して4倍する。)
s <- 100000
x <- runif(s)
y <- runif(s)
sum(x^2+y^2 <= 1)*4/s
『 <- 』は代入(この場合『 = 』とも書けるが推奨はされていない)、『 runif(a) 』は一様乱数を a 個作りベクトルで返す関数、『 a^2 』は a の二乗、『 sum(a<=b) 』は関係式 a<=b が真であるようなベクトル要素の個数、を意味する。ここで、ごく普通の数式によって、条件分け計算を複数回行なう指示が暗黙のうちになされることに注目されたい。 プログラム全体を読めば「サンプル数十万個として、一様乱数で xy のサンプルをつくり、半径1の円弧内に入ったサンプルだけを数える。」という計算の本質を反映した記述ができることが見て取れる。
代入『 <- 』は「付値」と呼ばれる関数でもあり、以下のように一行に書き換えても意味は同じ。
sum(runif(s <- 100000)^2+runif(s)^2 <= 1)*4/s
また、付値記号に矢印を用いると代入の向きを左右に使い分けられる。
ベクトルは「論理添字(元のベクトルと要素数が等しい論理値ベクトルを用いた添字指定)」を使うことで要素の絞り込みができ、そのベクトルに対して付値を行うと、絞り込んだ要素だけを別内容に置き換えることが可能になる。
以下はFizzBuzz問題の解答例である。(記号"#"から改行まではコメント文)
# 1から100までの整数を、ベクトルで生成する。(n: 加工前の数列 ・ Ans: 加工後の結果用数列)
1:100 -> n -> Ans
# 3の倍数FizzSet相当のAns要素を、文字列"Fizz"に置き換える。(FizzSet: 3の倍数位置を示す論理ベクトル)
Ans[n%%3==0 -> FizzSet] <- "Fizz"
# 5の倍数BuzzSet相当のAns要素を、文字列"Buzz"に置き換える。(BuzzSet: 5の倍数位置を示す論理ベクトル)
Ans[n%%5==0 -> BuzzSet] <- "Buzz"
# 両倍数の共通集合相当のAns要素を、文字列"FizzBizz"に置き換える。
Ans[FizzSet & BuzzSet] <- "FizzBuzz"
# 出力する。
cat(Ans)
イテレーターとしての for をはじめ各種制御命令も充実しているので、ベクトル記述とは適材適所に使い分けられる。
統計に適した解析環境
最小限の労力で見通しよく解析するために工夫された命令体系を備えている。
- ベクトル、配列、行列、データフレーム(テーブルに相当)、リスト、時系列、などの動的型付けデータ型。(後出「データ型」参照)
- 高階関数(データとして関数を操作する関数)をベクトル処理として記述できる
- 『モデル式』の導入により、複雑な統計モデル記述と曲線あてはめ等のモデルフィット指示を簡潔で統一的に表現できる
- 欠損値(NA)・無効値(NULL)・無限大(Inf,-Inf)・非数値(NaN)などの定数とそれらの検査関数
- 集合計算・複素数計算・時間日付計算・因子計算
- d(確率密度)・p(累積確率)・q(分位点)・r(乱数生成)の4機能と分布名を組合せる命名規則を持つ多次元確率分布機能関数[3]
- sample関数による数値・複素数・文字列などの標本抽出(サンプリング)記述
- オブジェクト指向(関数・代入式もオブジェクト)(「オブジェクト指向」を参照のこと)
- 単純な構文・データ型宣言不要・名前空間(「仕様」を参照のこと)
- 文字列・式の相互変換やパターンマッチング検索・編集などの文字列操作
- 対話的処理だけでなくバッチ処理も可能
- 解析手法の比較検証には欠かせない「定番の検証用データ集」
- ニューラルネット、決定木、クラスター、線形・非線形・自己相関モデルなど、多数の高水準組込関数群
- 画像処理・音声合成・GIS・テキストマイニングなどCRANによって日々強化される拡張機能
- 擬似乱数生成法としてメルセンヌ・ツイスタ(デフォルト設定)や他の多種の生成法が選択可能
- すべてのプラットフォームにおいて64bit対応
高速な組込み関数群
- インタープリタでありながらも行列などの複雑なデータ構造に最適化された高速な組込み関数群を持つ(「処理速度」を参照のこと)
- 更なる高速計算が要求される場合にはC・C++・FORTRANなどの外部プログラムと動的リンクして拡張できる
視覚化に優れたグラフ機能
- データのグラフ・図解化機能が柔軟でありインフォグラフィック環境とでも呼べるほど高度なグラフ作成ソフト機能を持つうえにユーザー独自の図解定義もプログラムが容易である
- グラフ画像を多くの画像フォーマット・商業印刷品質で出力できる(「データのプロット」を参照のこと)
データ互換性
- 他の統計ソフト(Excelなど)のデータ読込[4](「データ入出力」を参照のこと)手軽なデータソース例として、csvフォーマットのファイルを『 read.csv("ファイル名") 』と命令する事で、Rの標準的なテーブルデータ形式であるデータフレームに自動変換して読込ませられる。
- ODBC対応により各種データベースにアクセスできる
- webなど多様なデータソースからの入力形態に対応した「コネクション機能」を備える
ユーザープログラムを配信・利用できるCRANネットワーク機能
- 世界中のRユーザが開発したRプログラム(ライブラリ)(これを「パッケージ」と呼ぶ)がCRAN (The Comprehensive R Archive Network) と呼ばれるネットワークで配信されており、それらをR環境単独でオンラインでダウンロード・インストール・アップグレードと一連の管理が可能である。R-Forge等の他のサーバーも設定できる。CRANはRにシームレス統合されているため利用可能な機能(基本機能・オプションプログラムの両方)は日々増加拡張している[5]。(「パッケージ」・「最近の展開」を参照のこと)
教育現場から実務・研究現場へ永続的に利用可能
- マルチプラットフォーム・オープンソースで無償であるため誰もが同一作業環境を構築できる
- 「命令の文法が単純である」・「高水準な統計解析と視覚化機能・永続的な利用に耐える」などの理由で教育機関において統計学教育や統計処理を必要とする講義で利用し易いうえにプログラミングに手間取る事なく統計解析の教育・学習に専念できて解析のプロフェッショナルな道具であるので学習スキルは後々も実践で活かせる(「プログラムの入手」・「持続可能な統計環境」・「最近の展開」を参照のこと)
言語仕様
Rの構成には広義の関数型言語の一つであるSchemeの影響を受けているためにリストを基本にした内部処理・遅延評価・静的スコープなどの特徴を持つ。なお、表記法にはCの影響がある。
制御構造・サブルーチン
for ・ if ・ while ・ repeat ・ switch ・ break といった近代的な構造化構文をサポートする。自前の関数(手続き)を定義することができ、自前の二項演算子を定義することもできる。関数は function 関数で生成する。次に、階乗を計算する自前の関数を生成し、 toyfactorial として参照可能にする例を示す。
toyfactorial<-function (n) {
if (n<=0) return(NA)
f<-function(i) {
if (i==1) return(1) else return(i*Recall(i-1))
}
return(f(n))
}
これは実用的ではないが、関数のネスティング・再帰呼び出し・スコープの例として挙げる。R言語ではPascalやModula-2のように関数のネスティングが可能である。この例では、関数内部で更に局所的な関数を生成し、 f として参照している。スコープもPascal等と同様辞書式で関数 f の中ではその外側にある toyfactorial の変数が「見える」。 f は局所変数なので、関数の外側に同じ名前の変数があっても影響を与えない。ただし、Rは呼び出しスタックを遡る動的スコープも実現可能である。 f の内部では自分の名前を参照することができないので、自分自身を再帰的に呼び出すために Recall 関数を用いている。関数型の引数を利用することもでき、その場合複数の関数が互いに呼び出しあうことができ、また無名の関数をその場で定義して関数型の引数として渡すことができる。一種の複文のような用途に用いられる。NAは統計処理においては欠くことのできない特殊なデータで、データが無効であることを示す。
R言語の関数はそれ自体がオブジェクトであり、ある関数自体を外から参照したり書き換えたりすることができる。関数の本体部分を返す body 関数・仮引数リストを返す formals 関数・関数に付随する環境を返す environment 関数などが用意されている。
渡された式そのものを操作することも可能で、特定の環境(名前とポインタのリスト)の下で与えられた式を評価する eval 関数・渡された式の要素を環境に応じて置き換える substitute 関数・式を文字列に分解する deparse 関数等がある。
関数呼び出しも一種のリストとして処理されており、次のように call 関数を用いて、関数名と引数のリストから関数呼び出しオブジェクトを生成できる。
x <- 1:3
y <- 2:4
z <- call('plot', x, y)
eval(z)
関数はファイルから読み込むこともでき、更には、パッケージとして一纏まりにすることもできる。
オブジェクト指向
R言語には継承やメソッドの実行時ディスパッチといったオブジェクト指向プログラミングの手法が取り入られており、数多くの総称的な (generic) 関数を持つ。これは同じ関数名であっても、取り扱うオブジェクトが属しているクラスによって独自の方法で処理を行うものである。Rでは、クラスはオブジェクトに付随する属性として扱われるものの一つであり、リストとして保管されている。
データ型
数値型(複素数を含む)・文字型・論理型といった基本的な型やベクトル・リスト・行列といった統計処理や情報処理に必要な型を備えている。既述のように、関数それ自体もデータである。データフレームは配列ないしはリストの拡張版で、コラム毎に異なったデータ型を持てるため、表の形で表現されたデータを格納/操作するのに有用である。データフレームは行列から生成することもあるが、ここではリストとの関連で説明する。
ベクトルとリスト
ベクトル型は、データをある順序で並べたものである。 2:5 または c(2, 3, 4, 5) は数値型データ2, 3, 4, 5をこの順序で並べたものである。変数 a, b を同じ要素数をもつ数値型データのベクトルとすると、 a + b は両ベクトルを要素毎に加算してできた、同じ要素数の数値型ベクトルを返す。 a + 1 はベクトル a の各要素に1を加算したベクトルを返す。 c('猫', '猫', '犬') のように文字(列)型・論理型データを要素とするベクトルを作ることもできる。
リスト型は様々な型のデータを並べたものである。ベクトルのリストやリストのリストも可能である。 list 関数によって生成できる。
f1 <- c('猫','猫','犬')
f2 <- c(1, 2, 3)
f <- list(field1=f1, field2=f2)
文字型データを要素とするベクトル f1 ・数値型データを要素とするベクトル f2 からリスト f が生成される。 field1, field2 はリストの要素を指す「タグ」である。LISP風のdotted pair listも実装されているので必要に応じて用いられる。
データフレーム
さて、上記の2つのベクトル f1, f2 の要素数は等しい。このような場合、リストをデータフレームに変換できる。
df<-data.frame(f, row.names=c('たま ', 'みけ', 'ぽち'))
dfはデータフレーム型変数であり、各ROW(以下「行」)に「たま」「みけ」「ぽち」のラベルがつく。
もうすこし大きな表、例えば
種 | 性別 | 月齢 | 愛らしさ | |
---|---|---|---|---|
たま | 猫 | ♀ | 1 | 5 |
しろ | 猫 | ♂ | 2 | 4 |
くろ | 猫 | ♂ | 1 | 5 |
みけ | 猫 | ♀ | 3 | 5 |
ぶち | 猫 | ♂ | 12 | 3 |
とら | 猫 | ♂ | 18 | 2 |
みゃぁ | 猫 | ♀ | 30 | 4 |
猫じゃ | 猫 | ♂ | 80 | 0 |
ぽち | 犬 | ♀ | 2 | 5 |
ころ | 犬 | ♀ | 10 | 5 |
たろ | 犬 | ♂ | 40 | 3 |
じろ | 犬 | ♂ | 40 | 3 |
じんぺい | 犬 | ♂ | 50 | 2 |
わん | 犬 | ♀ | 60 | 4 |
のらくろ | 犬 | ♂ | 100 | 5 |
を例えば「犬猫」という名前の変数にデータフレームとして付値(手続型言語の代入に相当する)すると、その内容は
> 犬猫 種 性別 月齢 愛らしさ たま 猫 ♀ 1 5 しろ 猫 ♂ 2 4 くろ 猫 ♂ 1 5 みけ 猫 ♀ 3 5 ぶち 猫 ♂ 12 3 とら 猫 ♂ 18 2 みゃぁ 猫 ♀ 30 4 猫じゃ 猫 ♂ 80 0 ぽち 犬 ♀ 2 5 ころ 犬 ♀ 10 5 たろ 犬 ♂ 40 3 じろ 犬 ♂ 40 3 じんぺい 犬 ♂ 50 2 わん 犬 ♀ 60 4 のらくろ 犬 ♂ 100 5
のように、本来のデータをよく表現するものとなっている。それだけでなく、「猫」「犬」「♀」「♂」などの文字データは内部的に因子ないしはカテゴリに変換されている。データフレームから特定のデータコラムを抽出するには 変数名$タグ名 、例えば、 犬猫$月齢 とする。特定のデータ行だけを抽出するには subset 関数または要素の指定 [ ] を用いる。例えば、
猫<-subset(犬猫, 犬猫['種']=='猫')
犬<-犬猫[犬猫['種']=='犬',]
t.test(猫$愛らしさ,犬$愛らしさ)
は「愛らしさ」の平均値を猫と犬の間でt検定する。(この例では、p-value = 0.6537 である。)
機能
Rには標準状態でも統計、検定、解析向けの強力な関数が備わっており、必要に応じて新たな関数を定義することができ(既述のとおり、CやFORTRANなどによって記述し、外部でコンパイルした関数を呼び出すこともできる。)、自分でプログラムを書かなくても、多くのパッケージを利用できる。これに加えて、便利な入出力機能、グラフ作成機能を備えている。
データ入出力
ベクトルを読み込む scan 関数や簡易にデータフレームを読み込むことのできる read.table 関数等のようにテキストファイル入出力用のさまざまな関数が用意されている。また、市販の統計解析パッケージSPSS・SAS等の独自形式バイナリデータを直接扱うこともできる。画像をバイナリデータとして読むこともでき、読み込み後は行列として扱うことができるので、画像処理にも用い得る。パイプやソケット(ポート番号参照)を扱う関数も用意されている。
データのプロット
plot 関数によって多彩なプロットができる。 plot は総称的な関数であり、引数として渡されたデータの種類によって、自動的に様々なグラフを描き分ける。他にヒストグラムを描画する関数、イメージを描画する関数など高レベルの描画関数がある。これらはデフォルトでも機能するが、細かなパラメーターを指定することもできる。加えて、単に線を引いたり点を打ったりする低レベルの描画関数も用意されているため、好みのグラフを生成することができる。プロットは画面に対して行われるだけでなく、PDF・SVG・PS・PNGといった形式の出力を直接行うこともできる。
図にデフォルトでのプロット例を示す。上から順に plot(犬猫$種, 犬猫$性別) ・ plot(sin(seq(0, 2 *pi, 0.1))) ・ image(x <- -50:50, x, x %*% t(x)) の実行結果である。 seq 関数は等差級数からなるベクトルを生成する。 %*% は行列の積を計算する演算子、 t は転置行列を生成する関数である。最初の例では先に扱った動物種毎の性比を表示、次の例では、正弦関数(自動的にベクトルの添字が横軸となり、ベクトル生成式が縦軸のラベルとなっている)を表示し、最後の例では、引数を評価する中でベクトルを生成してxに代入し、積を計算し、その各要素の値を色の濃さで表現している。
ワークスペースの保存
現在の作業状況に名前を付けて保存し、後に再利用することができる。コマンドを発行するコンソールの内容も保存できるので、どのような処理を行って結果を得たかを確実に記録し、再現することができる。発見的操作を伴う研究用途では極めて重要な要素である。
その他
日本語対応
日本語に対応しており、関数名・変数名・コメントなどに日本語を使える。
プログラムの入手
CRANからダウンロード・インストールすれば直ちにRを利用開始できる。動作環境はマルチプラットフォームに対応し、Windows・Mac OS X・UNIX・Linuxで動作する。アップデートは精力的に継続され、ソースコードもCRANにて公開されている。
パッケージ
Rの用語でパッケージとはR言語のプログラムを配布用の形式に保存したものを言う。関数やデータセット・リファレンスマニュアルなどが一纏めにされた、いわば、でき合いのアプリケーション・関数ライブラリ・データベースなどと言える。 Rには予め幾つかの標準パッケージが添付されており、例えば、3層ニューラルネット (nnet) 等が直ぐに利用できる。
CRANを使い、インターネット越しに随時パッケージの一覧検索・ダウンロード・インストール・作業領域へのロード・アップデートをRシステムが管理する。パッケージ間で関数を引用しあう依存関係も自動的に処理され、ユーザーが気を配らなくて良い。Rユーザーから見ると、CRANはRとシームレスに統合された機能の一部になっている。 世界中のRユーザーが作成したパッケージがCRANで公開されており、これらは自由に使用できる。CRANはR資産の知識共有メカニズムとも言え、CRANによってRの機能は日々強化されている。R本体のみでも機能は潤沢だが、第一線ユーザー達の実務経験が反映した豊富なパッケージ群は大きな助力となり得る。
パッケージのダウンロードは自由に手動でできるが、相互依存関係の解決やインストール・アップデート・ロード管理は人手で行なうと煩わしいので、そのための機能を備えているRシステムに一元管理させるのが推奨される。 パッケージの管理をR自体が行なうためには、予め何れかのCRANサイトを手元のRシステムに登録設定しておく必要がある。設定は一度行なえば良い[6]。
なお、パッケージを用いなければ上記設定をしなくてもRを使うことはできるし、オフラインのみでRを使用しても問題は無い。パッケージが必要になった時に改めてCRANに接続するようにすれば良い。
因みに、Rユーザー自身がパッケージを作成するためのツールキットは標準パッケージとしてRに添付されている。
CUIとGUI
Rは以下の標準インタフェース画面を通じて用いる。
- コマンド入力や出力をCUIで行う「コンソールウィンドウ」
- コマンドやデータの文字列を編集しそれらをコンソールへ入力する「Rエディタ」
- ロードしたオブジェクトを管理する「ワークスペースブラウザ」
- データテーブルをスプレッドシート状の形式で編集できる「データエディタ」
- CRANからパッケージをインストールするための「パッケージインストーラ」
- インストール済みパッケージのロード管理をする「パッケージマネージャ」
- 各パッケージに含まれているデータセットをブラウズする「データマネージャ」
- 基本設定を行う「環境設定」
厳密に言えば、この方式はマルチウインドウのGUIと言えなくはないが、Rを操作する「コンソールウィンドウ」は「命令をテキスト入力して使うCUI」である。この点についてユーザーの間でも商業ソフトに見られるようなマウスオペレーションを望む声は多く、それに呼応してR CommanderというGUIがCRANからパッケージとして提供されている。
R標準以外のGUIを利用する方法として、RStudio・Tinn-Rがある。なお、他にも、GNUの時系列解析環境であるgretlがあり、そのGUIを通じてRを操作できる。(gretlはR以外に対しても使用できる。)また、データ分析プロセスをフローチャート式に描くことでプログラムできるR AnalyticFlowというソフトウェアも企業から無償提供されている。(「外部リンク」を参照のこと)
処理速度
インタプリタ言語であることから、R言語の処理速度は不当に低く評価されることが多い。しかしS言語商用版であるS-PLUSよりも多くの場合高速であるばかりか、汎用行列系言語のスタンダードとも言えるMATLABやその派生語のGNU Octave・Scilabよりも総合的に高速であるという評価例がある。(「外部リンク」を参照のこと)
「特徴」にもあるとおり、「統計計算に特化した情報処理」機能を充分生かしてこそ高い生産性を発揮できる。生産性の最たる「計算速度」への効果に関しては、基本的な作法が幾つも提唱されている。
R言語プログラムの高速化を目指すときは、R言語に組み込みの関数群が充分に高速化されているので、これらを活用すべきである。組み込み関数と同じ機能を新たにコーディングすることは避けなければならない。
ベクトルを纏めて扱える関数がある場合では、それを用いる。ベクトル要素ごとに分けて処理すると、速度は低下する。論理判断を含んだループ処理をするのは、多くの場合、間違った方法である。それに替えて論理添字集合の操作で一挙に答えを出すといった方法が推奨される。(R言語に限らず行列系言語何れにおいても、高速化するには「forやrepeatといったループ系の命令を無駄に使わず、極力ベクトル化(あるいは行列化)する」ことが基本である。)
持続可能な統計環境
教育課程から実務への移行や職務環境の変化が生じると、利用可能な計算資源というものは変わってしまう。
R言語の登場以前は、学術論文など社会的信頼性を要求される統計データの処理環境といえば高額なプロプライエタリソフトウェアばかりが前提とされた。だが、これでは継続的な予算がつかなくなれば環境のサポートやアップデートは停止してしまい、極端な話、予算が元から無い立場に異動してしまうと在来の統計処理が何もできなくなる事態になり兼ねない。
統計家にとっては、今まで習得し錬成した手法と蓄積したデータとその運用方法は例え環境が変化しようとも継承できなくては困る。この意味から、他に多く存在するプロプライエタリ・「生かすも殺すも版権保持者の都合次第」というような統計処理ツールと比べ、R言語のようなオープンソースで、それゆえ、CRANパッケージ等によって日々機能拡張し得る、つまり、「フリーソフトウェアの精神に則り永続的で世界規模な集合知に支えられ、無償でありながら高い信頼に値する。」統計環境というのは、統計家の長期的な生産性に大きく寄与する「持続可能な統計環境」と言える。
最近の展開
Rパッケージ数の飛躍的な増大に見られるとおり、統計学を超えて学問分野や業界を問わず、金融工学・時系列分析・機械学習・データマイニング・バイオインフォマティクスなど、柔軟なデータ解析や視覚化そして知識共有の需要に応え得るR言語の普及は世界的な広がりを見せている。
近年では、生命科学分野のためのRパッケージプロジェクトのBioconductorが立ち上がり、既に多くのゲノムスケール関連のパッケージが配布されている。ゲノムスケールデータの諸情報、すなわち、大規模遺伝子発現プロファイル・質量分析データ・蛋白質相互作用データなどを解析するプログラムやデータをRパッケージとしてRユーザーに配布する仕組みである。
また、アメリカ食品医薬品局 (FDA) への、嘗てSAS一辺倒だった、薬事申請や報告の際にも現在ではRが用いられている[7]。
SPSSでは、2009年より製品名をPASW Statisticsと改め、R言語との連携強化を発表した。SPSSのインタフェースからR言語の機能を使える[8]。
2009年7月にSAS Instituteは"R Interface Coming to SAS/IML Studio"によってSASからR言語へのインタフェースを提供することを発表した[9]。SAS InstituteのWebサイトには、新たな統計手法は大抵の場合は真先にR言語上で実装されるという現状を踏まえて、SASユーザーの要望に応えてインタフェースの提供を行なう、との旨が述べられている。
脚注
関連項目
外部リンク
- The R Project for Statistical Computing テンプレート:En icon R言語のオープンソース実装
- The Comprehensive R Archive Network テンプレート:En icon CRAN
- Mirrors テンプレート:En icon CRANのミラーサイトの一覧
- CRAN Packages By Name テンプレート:En icon CRANで公開されているR用パッケージの一覧
- CRAN Task Views テンプレート:En icon
- R-Forge テンプレート:En icon
- Software Map テンプレート:En icon R-Forgeで公開されているR用パッケージの一覧
- The R Journal テンプレート:En icon
- R Developer Page テンプレート:En icon
- R Wiki テンプレート:En icon
- RPubs テンプレート:En icon
- Revolutions テンプレート:En icon
- Rforge | open source tools and statistical computing ++ テンプレート:En icon
- inside-R | A Community Site for R | A Community Site for R – Sponsored by Revolution Analytics テンプレート:En icon
- It's crantastic! テンプレート:En icon
- R - Documentation テンプレート:En icon Rの公式マニュアル 『Introduction to R』
- R 統計言語 R の関連ドキュメントの和訳 manuals-jp R の日本語文章 テンプレート:Ja icon Rの公式マニュアル 『Introduction to R』 の和訳
- Kuhnert+Venables-R_Course_Notes.zip (ZIP) テンプレート:En icon An Introduction to R: Software for Statistical Modelling & Computing
- テンプレート:PDFlink テンプレート:En icon テンプレート:PDFlink テンプレート:Fr icon
- テンプレート:PDFlink テンプレート:En icon
- テンプレート:PDFlink テンプレート:En icon 書籍『The Elements of Statistical Learning Data Mining, Inference, and Prediction』と同じ内容
- テンプレート:PDFlink テンプレート:En icon 書籍『Linear Models with R』の草稿
- テンプレート:PDFlink R-Tips テンプレート:Ja icon 書籍『The R Tips』と同じ内容
- テンプレート:PDFlink テンプレート:Ja icon 書籍『Rによる保健医療データ解析演習』の草稿
- テンプレート:PDFlink テンプレート:Ja icon 書籍『Rによる統計解析の基礎』の草稿
- RSeek.org R-project Search Engine テンプレート:En icon R言語関連に特化させた検索
- seekR テンプレート:Ja icon 上記の日本語版
- R Wiki テンプレート:En icon R ProjectのウィキWiki
- RjpWiki 一覧 テンプレート:Ja icon Rの日本語情報と日本における中心人物の拠点
- リンク集 テンプレート:Ja icon Rに関するリンクが纏められている
- R本リスト テンプレート:Ja icon Rに関する書籍がリストアップされている
- Quick-R テンプレート:En icon
- テンプレート:PDFlink テンプレート:En icon Rの関数早見表
- R テンプレート:En icon Free Software FoundationのRプロジェクトページ(GNU Projectのひとつ)
- Rweb テンプレート:En icon ウェブブラウザーでR言語を体験できるWWWアプリケーション
- ggplot2 テンプレート:En icon ggplot2を使ってグラフを描画できるWWWアプリケーション
- Deducer: A GUI for R - Deducer Manual テンプレート:En icon 【R用パッケージ】 Deducer(RをGUIで操作できる)
- R Commander テンプレート:En icon 【R用パッケージ】 Rcmdr(RをGUIで操作できる)
- テンプレート:PDFlink テンプレート:Ja icon テンプレート:PDFlink テンプレート:En icon
- テンプレート:PDFlink テンプレート:En icon
- テンプレート:PDFlink テンプレート:Ja icon
- [連載]フリーソフトによるデータ解析・マイニング 第38回 テンプレート:PDFlink Rコマンダー: Rcmdr (1) テンプレート:Ja icon
- [連載]フリーソフトによるデータ解析・マイニング 第39回 テンプレート:PDFlink Rコマンダー: Rcmdr (2) テンプレート:Ja icon
- 無料統計ソフトEZR (Easy R) テンプレート:Ja icon 【Rcmdr用プラグイン】 RをGUIで操作できる(R Commanderを組み込んでいる)
- Rstudio テンプレート:En icon R用IDE
- RStudio テンプレート:Ja icon(非公式)
- Tinn-R テンプレート:En icon R用IDE(Windows用)
- R User Configurationについて テンプレート:Ja icon Rのユーザー個別設定を行うユーティリティ(Windows用)
- Ra, the R just-in-time compiler テンプレート:En icon Rのループ処理を高速化する試み
- Benchmark テンプレート:En icon Speed comparison of various number crunching packages(R言語の処理速度評価)
- R Graph Gallery テンプレート:En icon
- R Graphical Manual テンプレート:En icon
- ggplot2 テンプレート:En icon 【R用パッケージ】 グラフ描画用高機能関数群
- ggplot2 テンプレート:En icon 公式付随資料
- ggplot2 テンプレート:En icon 開発レポジトリ
- ggplot2 テンプレート:En icon wiki
- パッケージggplot テンプレート:Ja icon
- ggplot2 Quick Reference テンプレート:En icon
- R AnalyticFlow テンプレート:Ja icon フローチャートを描くことで高度なデータ分析を実現するR用ソフトウェア
- Bioconductor テンプレート:En icon ゲノムデータ解析R用パッケージ集
- STATISTICA テンプレート:En icon 「FDA公認」・「Rと連動可能」を謳っている統計ソフトウェア
- statconn テンプレート:En icon Rと他のアプリケーションソフトウェアとを相互連携させるサービスソフトウェア
- MeCab: Yet Another Part-of-Speech and Morphological Analyzer テンプレート:Ja icon 形態素解析エンジン
- RMeCab テンプレート:Ja icon Rから日本語形態素解析ソフト和布蕪 (MeCab) を呼び出して使うインターフェイス
- cabocha - Yet Another Japanese Dependency Structure Analyzer テンプレート:Ja icon Support Vector Machines に基づく日本語係り受け解析器
- RCaBoCha テンプレート:Ja icon 日本語の係り受け関係をRで解析できるようにする
- R-bloggers | R news & tutorials from the web テンプレート:En icon
- Ross Ihaka’s Home Page テンプレート:En icon Ross Ihakaの公式ウェブサイト
- Paul Murrell’s Home Page テンプレート:En icon Paul Murrellの公式ウェブサイト
- John Chambers テンプレート:En icon John M. Chambersの公式ウェブサイト
- ↑ R Project Contributors テンプレート:En icon
- ↑ GNU R テンプレート:En icon
- ↑ Rにおける確率分布 テンプレート:Ja icon
- ↑ Rがインポート・エクスポートできるデータ形式 テンプレート:Ja icon
- ↑ CRANパッケージリスト テンプレート:Ja icon
- ↑ CRAN国内ミラーの使い方 テンプレート:Ja icon
- ↑ RとFDA テンプレート:Ja icon
- ↑ IBM RユーザーのためのIBM SPSS Statistics Developer テンプレート:Ja icon
- ↑ R Interface Now Available in SAS/IML Studio テンプレート:En icon