1

大きなデータ テーブルX(504x9) とbzShare、列top.sectorsizeClass. 今、私はからの値を結合しbzShareX、の次元Xが(504x10)になるようにします。私が正しい場合、内部結合は x と y の両方で一致するキーを持つ行のみを選択しますが、常にゼロ行を取得します:-(

> dim(X)
[1] 504   9
> names(X)
[1] "sizeClass" "top.sector"    "year" "period" "somevar"
[6] "sumTest"   "sumTestTotal"  "AN"   "share"                    
> names(bzShare)
[1] "top.sector" "sizeClass"  "bzShare"   
> join(X,bzShare,type="inner",by=c("top.sector","sizeClass"))
NULL data table

これを (504x10) データ フレームにしなかったのはなぜですか?

4

1 に答える 1

2

2 つdata.frames以上の行列が同じ列名を共有しているからといって、2 つの行列の間に共通のキーがない可能性があるため、それらがうまく結合/マージされるとは限りません。あなたが説明しているもの。

有効な列名があっても、オブジェクトが空ではないことも確認してくださいbzShare(つまり、 の結果がありませんdim(bzShare))

皮切りに:

count(X$top.sector %in% bzShare$top.sector)
count(X$sizeClass %in% bzShare$sizeClass)

設定された交差点ごとに何かが得られるかどうかを確認します。

于 2012-04-24T10:57:33.610 に答える