R言語とPythonを比較

    「R言語」と「Python」の概要

    「R言語」と「Python」は、データサイエンス用途で活用できるプログラミング言語です。

    ■「R言語」とは

    R言語は、汎用プログラミング言語(Java、C#など)ではなく、統計解析に特化したプログラミング言語です。

    そのため、R言語を使用するためには、技術的な言語仕様の理解に加えて、基礎的な統計学知識も必要となります。

    解析処理をシンプルに記述でき、豊富な「データ解析機能」や「分析用機能」が用意されています。高度なグラフ化機能も搭載しています。

    ■「Python」とは

    Pythonは、パワフルなオープンソースプログラミング言語です。

    汎用の高水準プログラミング言語として設計されており、「インタプリタ」「動的型付け」「純粋オブジェクト指向」「インデント強制ルール」などの特徴を持つスクリプト言語です。

    複数のプログラミングパラダイムに対応しており、「オブジェクト指向型」「命令型」「手続き型」「関数型」などのスタイルでコーディングできます。

    Pythonは文法上特徴から、コードの可読性に優れており、初心者にも扱いやすいシンプルな言語です。

    ユースケース比較

    ■R言語

    R言語は主に統計分析用途で使用されます。

    20年以上にわたって、学者や統計学者がR言語を発展させてきた結果、データ分析を実行する最も豊かなエコシステムを備えています。

    ■Python

    Pythonはデータサイエンスに対して、より一般的なアプローチを提供します。

    「データ処理」や「データエンジニアリング」など、R言語とほぼ同じタスクを実行できます。R言語よりも堅牢で保守が簡単なコードを作成できます。

    Pythonは、機械学習を大規模に展開し実装するためのツールとしても利用されます。

    ライブラリ比較

    ■R言語

    R言語はデータ分析を実行する最も豊かなエコシステムを備えているため、専門的なデータ分析を実装するための最初の選択肢となりえます。

    オープンソースリポジトリ「CRAN」には約12000個のパッケージがリストされています。豊富なライブラリの中から、実行したい分析処理に必要なライブラリを利用できます。

    ■Python

    Pythonでのデータサイエンスに関する処理のほぼすべては、「Numpy」「Pandas」「Scipy」「Scikit-learn」「Seaborn」の5つのPythonライブラリで実行できます。

    他にもさまざまな領域に対応できる広範囲なライブラリを利用できます。

     

    参考元サイト
    guru99.com →R Vs Python: What’s the Difference?

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    基本情報

    概要

    R言語(アール言語)とは、統計解析に特化したプログラミング言語です。データ解析/分析用機能が豊富に用意されています。高度なグラフ化機能も特徴です。

    基本説明

    R言語は、汎用プログラミング言語(Java、C#など)ではなく、統計解析に特化したプログラミング言語です。解析処理をシンプルに記述できます。

    そのため、R言語を使用するためには、技術的な言語仕様の理解に加えて、基礎的な統計学知識も必要となります。

    広がるR言語

    Rライブラリの数は大きく増大しており、さまざまな業界/学問分野に広がりを見せています。
    ・金融工学
    ・時系列分析
    ・機械学習
    ・データマイニング など

    TOPに戻る

    主な特徴

    データは「オブジェクト」単位

    R言語では、データを「オブジェクト」という単位で扱います。

    オブジェクトにはさまざまな種類があります。
    ・ベクトル
    ・行列
    ・配列
    ・リスト
    ・集合
    ・時系列
    ・テーブル(データフレーム) など

    ベクトル処理

    R言語は「ベクトル処理」実行機構により、処理を柔軟にシンプルに記述できます。

    R言語での「ベクトル」は、数学分野のベクトルとはやや異なり、「構造を持ったデータ集合」のような意味で扱われます。

    高度なグラフ機能

    R言語の大きな特徴として「高度なグラフ機能」があります。データを柔軟にグラフ化できます。

    作成されたグラフ画像を、さまざまな画像形式(PDF、JPGなど)で保存し、高品質な出力が可能です。

    言語仕様

    言語仕様についての主な特徴は次の通りです。
    ・シンプルな命令文法
    ・リストを基本にした内部処理/遅延評価/静的スコープ
    ・オブジェクト指向(継承、メソッド実行時ディスパッチ)
    ・表記法にはCの影響
    ・関数名/変数名/コメントなどに日本語を使用可能 など

    ライブラリ連携

    R言語には、各種統計解析用パッケージ(ライブラリ、関数)が標準で用意されています。標準機能にない場合は、必要に応じて新たな関数を定義できます。

    C/C++/FORTRANなどの外部プログラムと動的リンクして拡張できます。

    Rパッケージ共有ネットワーク「CRAN」

    Rパッケージ共有ネットワーク「CRAN(The Comprehensive R Archive Network)」には、世界中のRユーザーが開発したさまざまなRパッケージが登録されています。

    R環境から、それらのパッケージについて、ダウンロード/インストール/アップグレードが可能です。

    データコネクション機能

    R言語は、多様なデータソースからの入力を行なう「コネクション機能」を備えています。
    ・ODBCによる各種データベースアクセス
    ・csvフォーマットからの自動変換読み込み など

    処理速度

    「汎用行列系言語『MATLAB』などよりも総合的に高速」という評価例もあります。

    IDE

    R言語用IDE「RStudio」の利用も可能です。

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Python」など。

    TOPに戻る

    ライセンス情報

    R言語のライセンスは「GNU Affero General Public License version 3」などの複数ライセンスです。詳細については、こちらを参照ください。
    →「R言語」オフィシャルサイト(英語) →R Licenses

    TOPに戻る

    ダウンロード

    →「R言語」オフィシャルサイト(英語) The R Project for Statistical Computing

    TOPに戻る

    参考元サイト

    ・「R言語」オフィシャルサイト(英語)
    ・Wikipedia →R言語
    ・Qiita →プログラマーのためのR言語入門
    ・Think IT →統計解析向けのプログラミング言語「R言語」の魅力と汎用言語との違い
    ・to-kei.net(全人類がわかるR入門) →R言語入門
    ・dynacom →2. 統計処理言語Rについて

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    「Python」基本情報

    ■概要

    Python(パイソン)とは、パワフルなオープンソースプログラミング言語です。インタプリタ、動的型付け、純粋オブジェクト指向、インデント強制ルールなどの特徴を持つスクリプト言語です。

    ■基本説明

    Pythonは、汎用の高水準プログラミング言語として設計されています。

    Pythonは、その言語発展経緯/文法上特徴から、初心者にも扱いやすいシンプルな言語と言われています。可読性に優れています。

    さまざまな領域に対応する大規模な標準ライブラリを提供しています。ライブラリと一体となったPythonは、単なる言語ではなく、フレームワークレベルの力を持っています。

    豊富なライブラリにより、Webアプリ/GUIアプリの作成も可能です。また、理工学、統計解析など、幅広い領域で使用されています。

    「Perl」や「Ruby」に比べて大規模プログラムを作りやすいという利点があります。小さなスクリプトを大きなプログラムに拡張しやすいという特徴もあります。

    Pythonは、複数のプログラミングパラダイムに対応しています。オブジェクト指向型、命令型、手続き型、関数型などのスタイルでコーディングできます。

    ■経緯

    Pythonは、オランダ人の「Guido van Rossum」氏が開発しました。

    「Python」の名前は、イギリスのテレビ局BBCが製作したコメディ番組『空飛ぶモンティ・パイソン』に由来しています。

    「Python」を直訳した「ニシキヘビ」が、Python言語のマスコット/アイコンとして使われています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Python

    ライセンス情報

    Pythonのライセンスは「Python Software Foundation License」です。

    詳細について、こちらを参照ください。
    →Python →History and License

    ダウンロード

    →Python →Downloads

    導入事例

    GoogleやFacebookで使われているという実績があります。YoutubeやDropboxもPythonで記述されています。開発者からの人気は高く、世界レベルでランキング上位にあり、幅広く利用されています。

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Ruby」「PHP」「Perl」など。

    「Python」の主な特徴

    ■スクリプト言語

    Pythonはスクリプト言語であり、コンパイルを必要としないプログラミング言語です。「軽量プログラミング言語」ともいわれ、記述が容易、コンパイル不要などの特徴があります。

    一方、実行速度に難があるとされることもあります。

    ■パワフル/高速

    Pythonは、高度に最適化されたバイトコードコンパイラ/ライブラリにより、多くのアプリケーションで十分な速度で実行することができます。

    ■連携性

    Pythonは、Java/.NETなどの、他のフレームワークオブジェクトと組み合わせることができます。

    ■拡張性

    C/C++で拡張モジュールを作成したり、既存のコードをSWIGやBoost.Pythonを使ってラップして使用することができます。

    ■インデント強制ルール

    Pythonは、Javaのように「 { 」(中カッコ)は使用しません。Rubyのように「end」も使用しません。

    Python独特な大きな特徴として、「インデント(字下げ)強制ルール」があります。コーディングルールとして、ブロック構造はインデントで表現します。

    コーディング自由度が制限されるため、誰が書いても同じようなコードになります。簡潔に、より少ないコード行数でプログラムを表現でき、とてもクリーンで読みやすいコードになります。

    ■クロスプラットフォーム

    Windows、Linux/Unix、MacOSなど多くのメジャーなOSで動作させることができます。

    ■学習しやすい

    ドキュメントが豊富に存在しています。

    ■pip / PyPI(Python Package Index)

    「pip」とは、Pythonで書かれたパッケージソフトウェア管理システムです。また、PyPI(Python Package Index)というリポジトリがあり、非常に多くのライブラリ(パッケージ)が登録されています。

    ■バージョン体系

    Pythonのバージョンは、旧型「2.x系」と新型「3.0系」があります。後方互換性は保証されていません。

    ■その他のポイント

    ・多くの基本的な機能は標準搭載
    ・広範囲に及ぶ標準ライブラリとサードパーティモジュール
    ・完全なモジュール化サポート(パッケージ階層化もサポート)
    ・アプリケーションに組み込んでスクリプトインタフェースとして利用することが可能
    ・マルチパラダイム
    ・動的型付け
    ・関数型言語
    ・直感的なオブジェクト指向
    ・WSGI(Web Server Gateway Interface)によるインターフェース統一化
    ・インタラクティブシェル
    ・ガベージコレクション
    ・例外ベースのエラーハンドリング
    ・ドキュメンテーションスクリプト機能
    ・過去のプログラム言語の便利な考え方を多数取り入れている
    ・科学演算や機械学習で利用可能なライブラリが多数用意されている など