Pythonには、セット、ディクテーション、リスト、タプルなどの豊富な組み込み型があるので、以前はPythonが好きでした。これらの構造は、データを処理するための短いスクリプトを作成するのに役立ちます。他方の側で汎用プログラミング言語としてのR
、Rは、MATLABのようであり、そのデータ型としてスカラー、ベクトル、データフレーム、アレイ及びリストを有しています。しかし、それはセット、辞書、タプルなどが欠けています。私はリストの種類が強力であることを知っています、多くの操作はリスト処理と考えることができます。しかし、Rを汎用言語として使用するという考え方はまだ曖昧です。
(以下は単なる例です。私はテキスト処理/マイニングに焦点を当てていることを意味するわけではありません。)
例えば、私はニュース記事のセットに対してカウントTF-IDFを行う必要があります(200,000言いますフォルダ内の記事とそのサブフォルダ)。
私はファイルを読んだ後、私は言葉ツーIDマッピングおよびその他の集計作業を行う必要があります。これらの作業には、文字列の操作や、setやmapなどのコンテナが必要です。
私はこれらの処理を行い、Rにデータをロードするために別の言語を使うことができると知っています。しかし、おそらく(小さなもののために)すべての前処理を1つのRスクリプトに入れる方が良いでしょう。
だから私の質問は、Rは、言語レベルでの豊富なデータ構造のこの種では十分な能力を有しているんですか?そうでない場合は、どのパッケージもR言語の拡張機能を提供しますか?
あなたの質問に直接答えはありませんが、rpy2のようなことは気付いていますか? PythonオブジェクトをRオブジェクトに変換し、R関数を使用することができます。だから、Pythonの処理をしてから、Rの処理を同じスクリプトで行うことができます。 –
@トーマスあまり解決策ではありません。私の懸念は、Rに固執し、可能な限り少ない外的なものを使用したいということです。特に私が自分のコードを書いたとき、エンドユーザーだけがR. –
セットをインストールする必要があるならば、 'sets'パッケージで利用可能です。ベクトルには名前付き要素があるため、ほとんどの目的でdictsと非常によく似た動作をします。 (IDと値の列を持つdata.frameもdictとして機能します) –