アメリカ最新AI情報満載!セミナーや講演情報など交えて毎週水曜配信 無料ニュースレター 下記へメールアドレスを入力し無料で登録
CLOSE
パロアルトインサイト/ PALO ALTO INSIGHT, LLC.
パロアルトインサイト/PALO ALTO INSIGHT, LLC. > ブログ > RとPythonの違い
投稿日:2020/02/25  by 長谷川貴久

こんにちは!CTOの長谷川です。今回はクライアントからもよく聞かれる質問で、「RとPythonの違いは何か」という質問に答えたいと思います。

Rの特徴

Rの根幹にはデータフレームと呼ばれる素晴らしいデータ構造があります。これは、普通の情報処理のデータ構造と比べて、圧倒的に一般の人が親しみを覚えやすいデータ構造です。なぜならデータフレームとは、普段使い慣れているエクセルのワークシートに他ならないからです。エクセルと同様に、行と列があり、列がデータの種類を定義し、行が事象を定義します。

例えば毎日の売り上げとコストというエクセル表に、「日付」(A列)、「売り上げ」(B列)、「コスト」(C列)の3列があって、1日のデータが1行に収まります。そこにエクセル上で「利益」という新しい列を追加する作業を思い浮かべてください。まずD列の一行目に「利益」と入力して、二行目に「=A1+B1」と数式を入力して、その数式をコピーして列全体に貼り付けるといった流れの作業になると思います。Rではこの一連の作業を一行のプログラムで実装できます

df$profit <- df$revenue - df$cost

 

以上で新たな列を定義し既存の売り上げとコストの2列から値を全ての行で算出しています。非常にコンパクトな上に、プログラミングを分からない人間がみてもどんな計算がされているかが一目瞭然です。また、コピペなどの作業がないため人的ミスやエラーが起きる可能性も少なくなります。

もちろんPythonにもデータフレームというデータ構造を後付けでつけることは可能です。そのためにPandasというライブラリがあります。ただし、言語に元からついている機能ではないので、Rのデータフレームと比較して、圧倒的にできることが限られると思います。

もう一つのRのキラーアプリはplotとggplotに代表されるデータの可視化能力です。データ可視化は分析やモデリングに必要不可欠な仕事で、ggplotほどスピードと柔軟性にバランスが取れたライブラリはないと思います。また、Rは統計や機械学習のツールも豊富です。CRANというレポジトリから自由にライブラリをダウンロードできます。そして、それらのツールは非常にユーザーにとって使い勝手がよく、割とプログラムの行数を少なく書けるものがほとんどです。

このようにユーザーにとって使い勝手が良く、効率が高いライブラリが書ける理由として、Rは関数型のプログラミング言語であることが挙げられます。これはPythonとの大きな違いの一つです。Rではプログラミング言語自体を変更して、ユーザーの用途に合うプログラミング言語に変形させるということが可能です。ggplotやdplyrなどはその例です。

Pythonの普遍性

Pythonは今では業界の標準プログラミング言語になりつつあります。その大きな理由として、ディープラーニングなどの流行りの手法を試したいならばPythonを使うしかないという現状があるからです。具体的にはTensorflowとPytorchが必要不可欠です。また、汎用プログラミング言語なので、データサイエンス以外の仕事ができます。例えばウェブサーバーやラズパイやネットワークプログラミングなどです。そういう意味では、非常に低リスクな言語です。他のプログラミング言語でできることならば、大抵はPythonでできます。データ可視化ならMatplotlibがありますし、ウェブサーバーならばFlaskやDjangoがあります。データ分析にはNumpyやPandasが使われます。

私がみてきた中で、Pythonの熱狂的ファンみたいな人に遭遇したことはありません。RやJuliaやSwiftなんかは必ず熱狂的ファンがいて、彼らのエネルギーに支えられながら言語が成熟していきます。私の経験では、Pythonをやる人は、しょうがないから(他に選択肢がないから)Pythonやってる感が出ていることが多く、本当にPythonが好きだからPythonで書いたということは聞いたことがありません。言語の成熟度にも関係しているのかもしれません。

言語の違い

「RとPythonの違いはなんですか」、という質問は「日本語と英語の違いはなんですか」という質問に似ていると思います。プログラミング言語も所詮言語なので、何かしらのことを表現するためにあります。どちらも「やろうと思えばほとんどのことができる」ということになると思います。その中で最も大きな違いはコミュニティ、つまりその言語を話すことができる人たちの一員になるという意識を持つことから生まれます。そして、RのコミュニティとPythonのコミュニティは全く違います。Rの会合に行くと、「機械学習って統計でしょ?」と聞いてくる60代くらいのエンジニアが必ずいます。PythonのプログラマーにRstudioの画面を見せると、「なにこれ?本物のプログラミング言語で実装してくれよ」と言われたことがあります。

データサイエンティストとしては、両方できるようになるに越したことはないと思います。ただ私が弊社のジュニアデータサイエンティストに教えていることは、2個いっぺんに学ぼうとするよりは、一つを熟知してからもう一つに行った方がいいと言っています。開発環境をセットアップしたり切り替えたりするのは時間がかかるし、脳のキャパシティにも限りがあると思うので、1つの言語をじっくり1年くらい使い込んである程度できるようになってから、次の言語という感じがいいと思っています。

最後に、Rを学びたい方は、弊社のRプログラミングでデータサイエンス入門講座がおすすめです。

そしてPythonを学びたい方は、高速アウトプットPython講座がおすすめです。

パロアルトインサイトについて

AIの活用提案から、ビジネスモデルの構築、AI開発と導入まで一貫した支援を日本企業へ提供する、石角友愛氏(CEO)が2017年に創業したシリコンバレー発のAI企業。

社名 :パロアルトインサイトLLC
設立 :2017年
所在 :米国カリフォルニア州 (シリコンバレー)
メンバー数:17名(2021年9月現在)

パロアルトインサイトHP:www.paloaltoinsight.com
お問い合わせ、ご質問などはこちらまで:info@paloaltoinsight.com

石角友愛
<CEO 石角友愛(いしずみともえ)>

2010年にハーバードビジネススクールでMBAを取得したのち、シリコンバレーのグーグル本社で多数のAI関連プロジェクトをシニアストラテジストとしてリード。その後HRテック・流通系AIベンチャーを経てパロアルトインサイトをシリコンバレーで起業。データサイエンティストのネットワークを構築し、日本企業に対して最新のAI戦略提案からAI開発まで一貫したAI支援を提供。東急ホテルズ&リゾーツ株式会社が擁する3名のDXアドバイザーの一員として中長期DX戦略について助言を行う。

AI人材育成のためのコンテンツ開発なども手掛け、順天堂大学大学院医学研究科データサイエンス学科客員教授(AI企業戦略)及び東京大学工学部アドバイザリー・ボードをはじめとして、京都府アート&テクノロジー・ヴィレッジ事業クリエイターを務めるなど幅広く活動している。

毎日新聞、日経xTREND、ITmediaなど大手メディアでの連載を持ち、 DXの重要性を伝える毎週配信ポッドキャスト「Level 5」のMCや、NHKラジオ第1「マイあさ!」内「マイ!Biz」コーナーにレギュラー出演中。「報道ステーション」「NHKクローズアップ現代+」などTV出演も多数。

著書に『AI時代を生き抜くということ ChatGPTとリスキリング』(日経BP)『いまこそ知りたいDX戦略』『いまこそ知りたいAIビジネス』(ディスカヴァー・トゥエンティワン)、『経験ゼロから始めるAI時代の新キャリアデザイン』(KADOKAWA)、『才能の見つけ方 天才の育て方』(文藝春秋)など多数。

実践型教育AIプログラム「AIと私」:https://www.aitowatashi.com/
お問い合わせ、ご質問などはこちらまで:info@paloaltoinsight.com

 

※石角友愛の著書一覧

NEWSLETTERパロアルトインサイトの
無料ニュースレター

毎週水曜日、アメリカの最新AI情報が満載の
ニュースレターを無料でお届け!
その他講演情報やAI導入事例紹介、
ニュースレター登録者対象の
無料オンラインセミナーのご案内などを送ります。

BACK TO BLOG
« »
PAGE TOP