R言語
インタプリタ言語であることから、R言語の処理速度は不当に低く評価されることが多い。しかしS言語商用版であるS-PLUSよりも多くの場合高速であるばかりか、汎用行列系言語のスタンダードとも言えるMATLABやその派生語のGNU Octave・Scilabよりも総合的に高速であるという評価例がある。
「特徴」にもあるとおり、「統計計算に特化した情報処理」機能を充分生かしてこそ高い生産性を発揮できる。生産性の最たる「計算速度」への効果に関しては、基本的な作法が幾つも提唱されている。
R言語プログラムの高速化を目指すときは、R言語に組み込みの関数群が充分に高速化されているので、これらを活用すべきである。組み込み関数と同じ機能を新たにコーディングすることは避けなければならない。
ベクトルを纏めて扱える関数がある場合では、それを用いる。ベクトル要素ごとに分けて処理すると、速度は低下する。論理判断を含んだループ処理をするのは、多くの場合、間違った方法である。それに替えて論理添字集合の操作で一挙に答えを出すといった方法が推奨される。R言語に限らず行列系言語何れにおいても、高速化するには「forやrepeatといったループ系の命令を無駄に使わず、極力ベクトル化(あるいは行列化)する」ことが基本である。
最小限の労力で見通しよく解析するために工夫された命令体系を備えている。
ベクトル、配列、行列、データフレーム(テーブルに相当)、リスト、時系列、などの動的型付けデータ型。(後出「データ型」参照)
高階関数(データとして関数を操作する関数)をベクトル処理として記述できる
名前付き引数プレースホルダー「 _ 」を利用できるネイティブパイプ演算子「 |> 」
『モデル式』の導入により、複雑な統計モデル記述と曲線あてはめ等のモデルフィット指示を簡潔で統一的に表現できる
欠損値(NA)・無効値(NULL)・無限大(Inf,-Inf)・非数値(NaN)などの定数とそれらの検査関数
集合計算・複素数計算・時間日付計算・因子計算
d(確率密度関数)・p(累積分布関数)・q(分位関数)・r(乱数生成)の4機能と分布名を組合せる命名規則を持つ多次元確率分布機能関数
rep、seq、sequence、seq.Date、seq.POSIXt、combn、expand.grid、replicate、などベクトルシーケンスの規則生成関数群