データサイエンスでRとPythonはどのように相互補完し合うのですか


54

多くのチュートリアルまたはマニュアルでは、物語は、Rとpythonが分析プロセスの補完的なコンポーネントとして共存していることを暗示しているようです。しかし、私の訓練を受けていない目には、両方の言語が同じことをしているようです。

ですから、私の質問は、2つの言語に本当に特化したニッチがあるのか​​、それともどちらを使用するのかが個人的な好みなのかということです。


2
これは本当にそのスレッドの複製のようには見えません。これは、Pythonを使用して統計を行う方法ではなく、PythonがRを補完する方法に関するものです(明らかに、Rは統計分析に使用されます)。
GUNG -モニカ元に戻し

4
10年前に統計学者だった場合はR。コードを本番環境のどこかに配置するか、再利用する場合は、Pythonを使用します。
-djechlin


3
このq。の人気のため、およびフラグを介したリクエストに応えて、私はそれを再び開きましたが、CWにしました。
Scortchi-モニカの復職

1
ほとんどの答えが忘れがちなのは、彼らが言語 Pythonを実装 GNU-R と比較しているということです。Rは、(参照の他の実装を持っていRenjin Javaで記述され、マイクロソフトRオープンインテルMKLでコンパイルされ、FastRPQRなど、)。これらは、はるかに保守的な実装であるGNU-Rのいくつかの問題を修正しようとします。また、Rには正式な定義がないことを忘れないでください。
Firebug

回答:


45

それらは補完的です。両方同じことを行うことができるのは事実ですが、ほとんどの言語でこれを言うことができます。それぞれに長所と短所があります。一般的な見方では、Pythonはテキストの分析だけでなく、データの収集と準備にも最適であると思われます。Rは何よりもまず統計的な言語であるため、データ分析に最適と考えられています。

Rには思いつく限りのパッケージがたくさんありますが、その基本は統計分析です。基本的なカイ2乗から因子分析、ハザードモデルまで、簡単で堅牢です。統計の最大の名前のいくつかはRパッケージを作成し、あらゆるニーズを支援する活発なコミュニティを持っています。ggplot2データの視覚化の標準です(グラフなど)。Rはベクトル化された言語であり、データを効率的にループするように構築されています。また、すべてのデータを両刃の剣であるRAMに保存します-小さいデータセットではきびきびしています(一部の人は私と反論するかもしれませんが) 、などff)。

Pythonは、特にプログラミングの経験がある人にとっては、Rよりも学習がかなり簡単です。Rはただ...変です。Pythonはデータ取得に優れており、Webスクレイピングに使用する言語です(すばらしいbeautifulsoup)。Pythonは、文字列の解析とテキスト操作の強さで知られています。pandasデータ操作、マージ、変換などのための優れたライブラリであり、高速です(おそらくRに触発されています)。

Pythonは、プログラミングが必要な場合に最適です。これは汎用言語であるため、驚くことではありません。ただし、Rはすべての拡張機能を備えており、統計学者のために統計学者によって作成されました。したがって、Pythonは多くのアプリケーションでより簡単でより良く、より速くなる可能性がありますが、Rは統計分析の頼れるプラットフォームになります。


13
両方を知っている人として、私はこれに同意します。スタイル論的な議論はたくさんあるかもしれませんが、最大の違いは、実際に因果統計モデルを実行するときが来たことです。Pythonは未発達です。statsmodelsのパッケージには、あなたにいくつかの基本を取得しますが、R、StataのまたはSASに近づきません。注目すべき例外の1つは、機械学習スタイルの分析です。Pythonscikitlearnはこれとよく一致します。他のすべてについては、Pythonは少なくともRと同等であり、多くの場合優れているという良い議論ができると思います。両方を学ぶことは決して時間の悪い使い方ではありません。
ジェフ

2
私はこれの大部分に同意します-しかし、より多くの問題を強調します-Rは大きなデータセットには適しておらず、スパースデータセットを処理しません(ほとんどのライブラリはそれをサポートしません)(多くは機械学習を実行します)たとえば、因子/カテゴリ変数のカーディナリティが1000年代になる可能性がある「単語の袋」タイプのモデル。
seanv507

10
コメントスレッドで引数を開始することはできませんが、data.tableR のパッケージは、大規模なデータセットを効率的に処理し、分散処理にうまくプラグインすることを特に目的としています。
ブライトスター

3
データの取得と文字列の解析においてPythonがRよりも優れていると思われる場合、Rをずっと間違って使用していることになります。同じことが成り立つ「Rは、大規模なデータセットのために良いものではなく、非常によく(ほとんどのライブラリがそれをサポートしていない)まばらなデータセットを処理しません」
紳士

3
トレバーのブーストdata.table; また、私は言って満足しているrvest最もこするタスクを処理するための優れたツールであり、より多く立ち上がっが容易とランニングbeautifulsoup
MichaelChirico

21

両方を使用する人として、データサイエンス/統計/データ分析などのために2つの言語が作用する主要なポイントに触れる回答を作成しようとします。

データ分析のワークフローは通常、次の手順で構成されます。

  1. 何らかのソース(ほとんどの場合、SQL / noSQLデータベースまたは.csvファイル)からデータを取得します。
  2. 適切な適切な形式(データフレーム)でデータを解析して、操作を実行し、それに基づいて考えることができるようにします。
  3. データにいくつかの機能を適用する(グループ化、削除、マージ、名前変更)。
  4. ある種のモデルをデータに適用する(回帰、クラスタリング、ニューラルネットワーク、その他の多かれ少なかれ複雑な理論)。
  5. 結果を多かれ少なかれ技術的な対象者に展開/提示します。

データの取得

時間の99%は、データを取得するプロセスは、SQLやインパラデータベースのいくつかの並べ替えを問い合わせるまで来る:両方のPythonRは等しくよく(時間がない中で仕事をすると、特定のクライアントやライブラリを持ってRImpalaRmySQLR用およびMySQLdbPythonのためにスムーズに機能しますが、追加することはあまりありません)。外部の.csvファイルの読み取りdata.tableに関しては、Rのパッケージは、freadカスタム解析オプションを使用して巨大で複雑な.csvファイルをすぐに読み取り、結果を列名と行番号を持つデータフレームに直接変換する機能を提供します。

データフレームの整理

単一のエントリ、行、または列に簡単にアクセスできるように、データを何らかの種類のテーブルに保存する必要があります。

Rのパッケージには、data.tableデータを、ラベル付け、名前の変更、削除、およびアクセスするには、他社の追随を許さない方法を提供しています。標準の構文は非常にSQLに似たようでdt[i, j, fun_by]、それがあることを意図していますdt[where_condition, select_column, grouped_by (or the like)]。カスタムのユーザー定義関数をj句と同様にそこに配置できるため、データを操作したり、グループやサブセットに複雑な関数やファンシー関数を自由に適用したりできます(i番目の行、k番目の列全体の標準偏差がwhat-it-isであり、最後の列でグループ化されている場合にのみ、(i-1)番目の行の(k-2)番目の要素に加算します)。見ていベンチマークをして、この他の驚くべきではSOの質問。列と行の並べ替え、削除、名前の変更は必要な処理を行い、標準のベクトル化されたRメソッドapply, sapply, lapply, ifelseは、各要素をループすることなく、列とデータフレームに対してベクトル化された操作をすべて実行します(Rでループを使用しているときは、ひどく間違っている)。

Pythonのカウンターウェポンはpandasライブラリです。最終的には、pd.DataFrameデータを(何らかの理由ではなく)データフレームとして扱う構造(標準のPythonにはまだ何らかの理由で私が知らない)を提供しますnumpy array, numpy list, numpy matrix。グループ化、名前の変更、並べ替えなどの操作を簡単に実行できます。ここでも、ユーザーはPython applyまたはを使用して、グループ化されたデータセットまたはフレームのサブセットにカスタム関数を適用できますlambda。私は個人的に文法df[df.iloc(...)]にエントリにアクセスすることを嫌いますが、それは個人的な趣味であり、まったく問題ありません。グループ化操作のベンチマークは、Rよりもやや劣りdata.tableますが、コンパイルに0.02秒を節約する場合を除き、パフォーマンスに大きな違いはありません。

ひも

Rの文字列を処理する方法は、使用することですstringr空白または簡単に同様の末尾、任意のテキスト操作、アナグラム、正規表現を可能にするパッケージを。また、JSON辞書をアンパックしてその要素をリストから外すJSONライブラリと組み合わせて使用​​することもできます。そのため、UTF8以外の文字や空白なしで、列名と要素が必要な最終データフレームが得られます。そこで。

PythonのPandas .str.は、正規表現、トレーリング、または競合他社と同じように遊ぶという同じ仕事をしているので、ここでも味に大きな違いはありません。

モデルの適用

私の意見では、2つの言語の違いはここにあります。

R現時点では、ユーザーが基本的に1行から2行のコードで必要なことを何でも実行できる無敵のライブラリセットがあります。標準の関数または多項式回帰は、1行で実行され、対応する信頼区間とp値分布を伴う係数が簡単に読み取れる出力を生成します。同様に、クラスタリング、ランダムフォレストモデル、デンドグラム、主成分分析、特異値分解、ロジスティック近似など。上記のそれぞれの出力は、係数とパラメーターの色とバブルを使用して、たった今したことの視覚化を生成する特定のプロットクラスを伴う可能性が最も高いです。仮説検定、統計検定、シャピロ、

Pythonはに追いつくためにしようとしているSciPyscikit-learn。ほとんどの標準分析とモデルも利用できますが、それらはコーディングがやや長く、読むのが直感的ではありません(私の意見では)。より複雑な機械はありませんが、一部は既存のライブラリのいくつかの組み合わせにまでさかのぼることができます。RよりもPythonで行うことのほうが好きなことの1つは、2グラム、3グラム、および高次の語彙テキスト分析です。

結果を提示する

両方の言語には美しいプロットツールがあり、Rはggplot2何よりもPythonに相当します。あまり競争する必要はありませんが、彼らは仕事を安全かつ健全に行いますが、結果を提示する場合は他のツールを使用する必要があるかもしれないと信じています-そこには派手なカラフルなデザインツールがあり、PythonもRも派手な赤と緑のドラッグアンドドロップの聴衆。Rは最近、そのshiny app機能に関する多くの改良点を公開しました。これにより、基本的にインタラクティブな出力を生成できます。私はそれを学びたかったことはありませんでしたが、私はそれがそこにあり、人々がそれを上手に使うことを知っています。


サイドノート

補足として、2つの言語の主な違いは、Pythonがコンピューターサイエンス、移植性、展開などによって作成された汎用プログラミング言語であるということです。それは何をするのかが素晴らしく、学ぶのは簡単です。pythonが嫌いな人はいません。しかし、プログラミングを行うのはプログラミング言語です。

R、一方で、数学者、物理学者、統計学者、データ科学者によって、そしてそれらのために発明されました。その背景から来た場合、統計と数学で使用される概念を完全に反映して再現するため、すべてが完全に理にかなっています。しかし、代わりに、コンピューターサイエンスのバックグラウンドから来て、JavaまたはR in Cをシミュレートしたい場合、失望するでしょう。標準的な意味での「オブジェクト」はありませんが(そうですが、一般的に考えているものではありません...)、標準的な意味でのクラスはありません(まあ、そうではありますが、通常はありません)彼らはそうだと思う...)、それは「ポインタ」または他のすべてのコンピュータサイエンス構造を持っていません-それがそれらを必要としないという理由だけで。最後になりましたが、少なくとも:ドキュメントとパッケージの作成と読み取りは簡単です(Rstudioを使用している場合)。大きくて情熱的なコミュニティがあり、Googleに「Rにinsert-random-problemを行う方法」という文字通り5秒かかります。 、 あっという間に。

ほとんどの産業企業は、Python(またはPythonに優しい環境)で構築されたインフラストラクチャを使用して、Pythonコードを簡単に統合できます(import myAnalysisどこでも、基本的に完了です)。ただし、最新のテクノロジー、サーバー、またはプラットフォームは、問題なく簡単にバックグラウンドRコードを実行します。


8
+6、これは非常に良い答えです。詳細で、正確で、バランスが取れています。
GUNG -モニカ元に戻し

+1ここでベストアンサー。面白いです、私はJavaからRに来ました(直接のルートではありませんが)、私はそれが大好きになりました。Rでループを実行すると、それが間違っていることを意味するとは限りません。ループを使用して回避しようとして頭を掻くことがありますが、それを回避する方法が見つかりませんでした(前の行の条件に基づいてデータセットに新しい変数値を作成し、セカンダリデータセットからデータを取得するなど)。
ユヴァルシュ

太陽の下で何かをするためのこの大量のRパッケージのみが、統計計算の方法を知っている/信頼性のある堅牢な数値数学ソフトウェアを書く/数値解析を知っている人などによって書かれた場合、Rパッケージのいくつかは非常に優れています。有名な著者によって書かれたものでさえ、非常に多くのRパッケージは完全なゴミです-そして、多くのユーザーは、自分がゴミを受け取っていることにさえ気づいていません。ああ、それはCRANにあります、それは良いか、少なくとも正しく、または信頼できるものでなければなりません...間違っています!!!!!
マークL.ストーン

「Rは、今日の時点で、ユーザーが基本的に1行から2行のコードで必要なことをすべて実行できる、無敵のライブラリセットを備えています。」正しい答えを得ることがユーザーの望みの1つでない限り、100%に同意します。
マークL.ストーン

8
@ MarkL.Stone有名なユーザーが間違った結果を出す標準パッケージの例を紹介してもらえますか?
gented

15
  • Pythonは一般的なプログラミング言語です。そのため、データ分析に加えて他の多くのタスクを実行するのに適しています。たとえば、実稼働サーバーでのモデルの実行を自動化する場合、pythonは本当に良い選択です。他の例には、データを読み取るためのハードウェア/センサーへの接続、データベース(JSONなどのリレーショナルデータまたは非構造化データ)との対話、データの解析、ネットワークプログラミング(TCP / IP)、グラフィカルユーザーインターフェイス、シェルとの対話などが含まれます(まあ、なぜデータ科学者は、予測モデルとはほとんど関係のない、こうした種類のタスクをこれほど多く行いたいと思うのでしょうか?人々は異なる定義を持っていると思います一部の組織では、データを解析してダッシュボードで記述分析を行うことはビジネスに十分であり、予測モデルを行うにはデータが十分に成熟していません。一方、多くの小規模企業では、データサイエンティストが多くのソフトウェアエンジニアリングを行うことを期待する場合があります。Pythonを知ることで、他のソフトウェアエンジニアから独立させることができます。)

  • Rには、PythonやMATLABよりもはるかに優れた統計パッケージが多数あります。Rを使用すると、実装の詳細レベルではなく、モデルレベルで考えることができます。これは、統計モデルの開発において大きな利点です。たとえば、多くの人がPythonでニューラルネットワークを手動で実装しています。そのような作業を行うと、ニューラルネットワークが機能する理由を理解するのに役立たないかもしれませんが、レシピに従って他の作業を複製し、機能するかどうかを確認するだけです。Rで作業している場合、実装の詳細ではなく、モデルの背後にある数学に簡単に集中できます。

多くの場合、人々はそれらを一緒に使用します。Pythonでソフトウェアを構築するのは簡単です。Rではモデルを構築する方が優れています。紙ではなく実稼働でモデルを提供する場合は、両方が必要になる場合があります。会社に多くのソフトウェアエンジニアがいる場合は、さらにRが必要になる可能性があります。また、会社に多くの研究科学者がいる場合には、さらにPythonが必要になる場合があります。


2
いい答えですが、あなたは「JSON」ではなく「Jason」を書いたので、良い笑い声をくれました
パー

私は実際には統計や「機械学習」コミュニティのメンバーではありませんが、高度なパッケージの入手可能性はコミュニティ固有のものであると思います。Rコードには、多くの新しい統計技術が付属していると信じられます。しかし、コンピュータビジョン/機械学習/(「高レベル」)コードが付属するニューラルネットペーパーを見ると、Matlabまたはpythonのように見えます。
GeoMatt22

1
言語が人の考え方にどのように影響するかを議論するための+1。Rの大きな利点は、統計学者によって統計学者のために構築されているため、モデリングの観点から思考を促進する方法です。開示:私はRには堪能ですが、Pythonには手を出せません。
アッシュ

えっと…どうscikit-learnscikit-learn.org/stable
軍艦

10

すべてのストライプのプログラマーは、言語の選択がどれほど文化的であるかを過小評価しています。Node.jsのようなWeb開発者。Pythonのような科学者。Javascriptの流動性とJavaの剛性をすべて同じように処理できる多言語ソフトウェアエンジニアとして、これらの言語がお互いの仕事に悪い本質的な理由はないことに気付きました-膨大な量のパッケージ、ドキュメント、コミュニティ、書籍、など。

(本質的な理由から、1つのランダム言語は他の言語よりも優れています。この回答に対する今後のコメントを参照してください。)

私の個人的な予測では、PythonはRができることすべてを行うことができるため、またはむしろRができることを十分に行うことができるため、Pythonが未来の方法であり、ギャップを埋めるためにはるかに優れたソフトウェアエンジニアリング言語です。ソフトウェアエンジニアリングは、以下を扱う分野です。

  • コードの信頼性を十分に信頼して本番稼働させる(つまり、リアルタイムでユーザーにサービスを提供する機械学習モデル)
  • コードが変更および再利用されても動作し続けることを保証する(たとえば、フレームワークの単体テスト)
  • わずか6か月で他の人や自分自身の利益のために、読みやすさに重点を置く
  • バージョン管理の容易さ、以前の作業バージョンへのバックアウト、および複数のパーティによる同時開発のためのコード編成に深く重点を置いています
  • より良いドキュメンテーションを備えたツールとテクノロジーを好み、適切に使用しないとまったく機能しないプロパティが理想的です(これはMatlabに対する私の最大の不満でした-私は質問をグーグルし、かなりひどいフォーラムを読む必要があります答えを探して)

さらに率直に言って、Pythonの方が簡単に習得できます。

科学者や統計学者は、彼らが優れたソフトウェアエンジニアリングの実践の利害関係者であり、独立した自由な職業ではないことに気付くでしょう。ただ私の意見ですが、学術コードの脆弱性を証明する論文はこれをサポートします。

この答えはすべて私の意見です-しかし、あなたは非常に意見の多い質問をしましたが、これまで好評だったので、それに応じて気取らない、合理的な情報(私は!)の意見に値すると感じました。PythonがRを介して全面的に真剣に議論されており、現実が党派的であるかもしれないときに、党派的ではない答えを投稿しようとすることを私は見逃します。


ジュリアは、成長したときにPythonよりも優れた代替品になりませんか?
kjetil bハルヴォルセン

1
@kjetilbhalvorsen「それが成長するとき」は「もし」のようなものであり、確立された言語に取って代わることは非常に困難です。IMO、Pythonには今、勢いがあります。ジュリアにはあまり詳しくないので、これはかなり一般的な意見です。
-djechlin

1
最初の箇条書きを除いて、Pythonが他の4つのポイントのいずれにおいても本質的に優れているかはわかりません。
Firebug

4
「PythonはRができることをすべて実行できます」は偽です。「専用プログラマーがギャップを埋めるために取り組んでいるRの能力は十分です」、それは世界中のあらゆるものに当てはまります。
-16:33に

2
@djechlin完全にそうではありません。信頼性の例は、「ユーザーにリアルタイムでサービスを提供する機械学習モデル」です。Pythonは、Rよりもはるかに簡単に展開をサポートするため、これが優れています。単体テスト、読みやすさ、組織、およびドキュメントは、本質的な性質ではありません。独自のテストを実装し、コードを読みやすく、整理し、Rドキュメントを理解するのは本当に簡単です。
Firebug

8

私はRユーザーですが、Pythonは未来だと思います(構文ではないと思います)

Pythonは未来
ですPythonの利点は、他の人々がはるかに幅広いサポートに言及しており、プログラマにとってはより論理的な構文に言及していることです。
また、分析結果を本番システムに変換できる機能は、はるかに簡単です。
たぶん、Pythonが汎用であり、Rがそうではないからかもしれませんが、プロダクション化されたRパイプラインを見たとき、私も眉をひそめます。
それだけでなく、高度なアプリケーションであっても、Pythonはすぐに追いついています(Scikit-learn、PyBrain、Tensorflowなど)。高度な専門ライブラリの出現。

しかし、Rは悪くない
多くの人々は、「R has bad syntax」の時流に飛び乗ることを好むようです。
Rの構文を良いものにすることを提案したい!Rを使用する場合
、割り当て関数、遅延評価、非標準評価、および式は大きな利点
です。サマリーで参照される変数名のエスケープや、何に対して何をモデル化するかのロジックの構築を心配する必要がないため、時間を大幅に節約できますで名前を見てnames()から、を追加して新しい名前を割り当て<- c("A", "B", "C")ます。
Rの奇妙な構文について不満を言う人は、それをデータサイエンスツールではなくプログラミング言語と見なします。
Rから来てdplyrを愛している人として、私はパンダの構文が比較して少し不器用だと思います。
はい、それはもう少し柔軟ですが、ほとんどのタスクでは、あなたのアイデアを表現するためではなく、Pythonのパーサーを満たすためだけにあるRよりも単純なコマンドを実行するために多くのキーストロークを取ります。

まとめ
当然、両方を知っているのが賢明であり、Pythonがそこに到達している間、Rのドメイン固有の設計の選択は、アドホックな作業のためにそれを単純にします。Rの大きな欠点は、そのドメインを離れるのが難しいことです。これは、基本的に、調査結果を持続可能な方法で実装しようとするときに行う必要があります。


4

Rをプログラミング言語としてではなく、統計ツールとしての見方をすれば、それは本当に素晴らしいことです。StataやSPSSよりもはるかに柔軟性がありますが、できることはすべて実行できます。私は大学でStataを学びました。Rは他の人が持っているような純粋なプログラミング言語の経験ではなく、統計ツールの観点をすでに持っていたので、見るのに十分簡単でした。

プログラマーがRを学び理解しようとすると、Rに対するフラストレーションが生じると思います。しかし、統計的なバッ​​クグラウンドを経てRに来た人には素晴らしいツールです。

すでに優れたプログラマーであれば、Pythonは素晴らしいです。しかし、私が大学を卒業したばかりのプログラミングと統計の初心者としては、Rの方がはるかに良い選択でした。どちらがあなたのスキルセットに合っていて、より興味があるのか​​というのは本当に好みです。


3

以前の回答のいくつかに追加する:

私の経験では、Rのdplyr + tidyr、ggplot、およびRmarkdownを使用して、生データから表示可能な結果を​​取得することほど簡単なことはありません。Pythonは多くの機能を提供し、私はそれをますます使用していますが、Hadleyのパッケージを結び付ける方法が大好きです。


2

Pythonは科学以外にも広く採用されているため、そのすべてのメリットを享受できます。「Rへの怒りのガイド」が指摘しているように、Rはコミュニティによって開発されました。

今日、Rには2つの主な強みがあると思います。いくつかの分野で非常に成熟した高度に専門化されたパッケージと、最新の再現可能な研究パッケージknitrです。

Pythonは他のすべてに適しているようです。

これはもちろん、このスレッドのほとんどすべてのものであるという意見です。私は、このスレッドがまだ生きていることに少し驚いています。


2

他の回答で説明したように、Pythonは優れた汎用プログラミング言語であり、Rにはプログラミング言語として重大な欠陥がありますが、より豊富なデータ分析ライブラリのセットがあります。近年、Pythonはscikit-learnなどの成熟したデータ分析ライブラリの開発でRに追いついていますが、Rは決して修正されません。実際には、ほとんどすべてにPython(実際にはHy)を使用し、分位点回帰(Pythonのstatsmodelsでの実装が壊れているように見える)などの比較的難解な方法に対してのみRを使用します。PythonからRを呼び出す方法はいくつかあります。PypeRは、Windowsサーバーのような敵対的な環境で動作するようになったほど単純なものです。

編集:これについてさらに議論したい人は、この答えにコメントするのではなく、リンクされたエッセイの著者と話をすることをお勧めします。


8
このaRrghガイドは、Rについてこれまで読んだことがある(そして多くのことを読んだ)最も無知な批判です。
Firebug

10
「ドキュメントはめちゃくちゃ悪い」、それは無知です。Rの強みは、非プログラマーにとってのシンプルさと、膨大なドキュメントです。「Rの名前さえ馬鹿だから、Rのことを便利な方法でGoogleで検索するのは本当に難しい。ごめんなさい。Rへようこそ!」、それは無知である。私は、最も不明瞭なパッケージのドキュメントを見つけようとして問題に遭遇したことはありませんでした。「列の名前を、スプーキーで、名前(フレーム)に割り当てることで変更します。これがどのように、なぜ機能するかを知っていますか?私を教育してください。」
Firebug

8
RはCよりもグーグルが難しいのですか?Googleはスマートです。プログラミング言語Rに興味があることを学習します。Rは、他のプログラミング言語のバックグラウンドを持つ人々からほとんど批判されています。申し訳ありませんが、これらの言語の代替として開発されたものではありません。統計学者向けに開発されました。その結果、いくつかの設計決定は最適ではありませんでしたが、深刻な欠陥があると言うのは少し強いです。すべてのプログラミング言語には長所と短所があります。
ローランド

5
パッケージの作成は実際には非常に簡単です。CRANによって(正しく)施行されている規則を順守している場合にのみ、複雑になります。パッケージを作成する場合、パッケージから選択してインポートできます。ベクトルリサイクルは実際には強みです。サブセット化リストとベクトルの間に矛盾はありません。残りのいくつかは実際に欠陥とみなすことができます。
ローランド

6
Rには明らかにいぼがあり、言い訳にならない「ワット」の種類(stringsAsFactors)があります。しかし、他の言語では、並列でも、リモートでもない統計ライブラリもあります。これらのライブラリを作成するために必要なプログラミングは、私たちの大多数がこれまでにしていたよりも深刻です。包括的文言として、「Rは深刻な言語ではありません」は、無知で、絶望的に偏狭で、文盲で、酸っぱいブドウの間のどこかにあります。そして、これは、Rが基本的にRのライブラリを備えたPythonであることを望む人として言います。
ポール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.