2013-08-01 33 views
29

です。私の最後の質問では、data.framedata.tableの間に混同がありました。確かに、私は区別があることを認識していませんでした。実際のdata.frameとdata.tableの違いはR

私はそれぞれのためのヘルプを読んでいますが、実用的で日常的な意味で違いは何ですか、その意味は何ですか?

+2

-1です。質問が広すぎます。 –

+0

@AnandaMahto、ありがとう、しかし、それはまた、天才のための包括的なsuccint答えを思い付く機会です... :-) –

+12

@ジャスティン:リンクが役立った。私はそれらを知らなかった。おそらくあなたは態度なしで知らせることができます。 @ Ferdinand.kraft:あなたの2番目のコメントは私の位置を正確に要約しています。もちろん、ヘルプページやチュートリアルを読むことはできますが、多くの人が言語の実用的知識を身に付け、経験豊富な人の技術マニュアルのように読んでいます。確かに、最も実用的な部分を 'data.frame'と' data.table'の両方で何年も掘り下げて扱うことができない人が私たちの間にいます。私は仕事を避けようとは思っていません。経験豊富なプログラマーが経験が少ない私たちに何を伝えることができますか? – remarkableearth

答えて

7

これらは似ています。データフレームは等しい長さのベクトルのリストであり、データテーブル(data.table)はデータフレームの継承である。従って、データテーブルはデータフレームであるが、データフレームは必ずしもデータテーブルではない。データテーブルのパッケージと関数は、インデックス作成、順序付けられた結合、割り当て、グループ化、およびリストの列(など)の速度を向上させるために作成されました。

詳細については、http://datatable.r-forge.r-project.org/datatable-intro.pdfを参照してください。

+2

彼らは外観が似ています。 –

+0

@エリス、リンクありがとう。 – remarkableearth

+0

@ Ferdinand.kraft彼らは機能に似ていませんか? ;)しかし、私は彼らが多くの違いを持っ​​ていることに同意します –

47

これは広範な質問ですが、誰かがRを初めてお使いの場合、これは混乱する可能性があり、区別が失われる可能性があります。

全てdata.tablesもdata.framesである。ゆるやかに言えば、data.tablesは特別な機能を持つdata.framesと考えることができます。

data.frameは、Rの一部です。

data.tableは、data.framesを拡張するパッケージです。最も注目すべき機能の2つは、スピードとクリーンな構文です。

しかし、この構文の砂糖はdata.frameの標準R構文とは異なりますが、訓練されていない目は一見して区別するのが難しいです。したがって、コードスニペットを読み込んで、data.tablesで作業していることを示す他のコンテキストがなく、data.frameにコードを適用しようとすると、エラーが発生したり、予期しない結果が生じる可能性があります。それは言われているすべてで

(あなたがlibrary/requireコールのほか、d.t年代で作業している明確な景品がdtにユニークです代入演算子:=の存在がある)、私はそれが難しいですだと思います実際にdata.tableという美しさを感じることなく、data.frameの欠点を経験しています。 (例えば、@ eddiの答えの最初の3つの箇条書きを参照してください)。つまり、data.framesを操作して操作する方法を最初に教えてから、data.tableに進んでください。

26

(順不同)の心に来て日常生活に私の一日でいくつかの相違点:

  • に(不器用な構文と愚かなミスにつながる)何度もdata.table名を指定する必要がありません表現(フリップ側で私は時々名のタブ補完を欠場)
  • より速く、非常に直感的by操作
  • はこれ以上必死にもほとんどにつながる(だったか大df忘れ、dfを入力後、Ctrl-Cを押します決して使用head
  • より速く、freadパッケージには、より良い生活
  • 速くすべて、以来data.frame操作の多くは、コピー作る%between%またはrbindlistのような他のユーティリティ機能の数を、提供
  • で読み、より良いファイル全体が不必要に
+0

は3番目の理由でupvoted ... – eflores89