-1

重複の可能性:
R では、data.frame を別の data.frame の値でサブセット化するにはどうすればよいですか?

2 つの data.frames があります。最初の (df1) は、ヘッダー「names」を持つ 100 エントリの単一の列です。2 つ目 (df2) は、数万のエントリのメタデータの数百の列を含むデータフレームです。df2 の最初の列にもヘッダー「names」があります。

df1 にある名前のサブセットによって、df2 のすべてのメタデータを選択したいだけです。

この初心者の R ユーザーを助けてください。ありがとうございました!

4

1 に答える 1

1

%in%でdata.frameを使用できますが、検索する名前が何千もある場合は遅くなる可能性があります。

data.tableを使用することをお勧めします。これは、インデックス列を並べ替え、数百万のレコードでもほぼ瞬時にデータベース結合を実行できるためです。詳細については、data.tableのドキュメントをお読みください。

大きなdata.frameと小さなdata.frameがあるとします。

library(data.table)
big <- data.frame(names=1:5, data=1:5)
small <- data.frame(names=c(1, 3, 6))

それらをdata.tableオブジェクトにし、キー列を名前に設定します。

big <- data.table(big, key='names')
small <- data.table(small, key='names')

次に、結合を実行します。data.tableの[]を使用すると、data.tableを別のdata.tableのキー列でインデックス化できます。この場合、同じくsmallであるbigの行を返します。名前がsmallであるが、bigではない場合、データが欠落します。

big[small]
#    names data
# 1:     1    1
# 2:     3    3
# 3:     6   NA
于 2012-12-07T00:08:54.900 に答える