2012-04-24 64 views
1

我得到一个大数据表X(504x9)和一个较小的数据帧bzShare(323X4)都与列top.sectorsizeClass。现在我想将bzShare中的值加入X,这样X的尺寸就是(504x10)。内部联接仅选择与排在x匹配的密钥和y,如果我是正确的,但我总是得到零行:-(plyr R空内连接

> 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)数据帧?

回答

2

仅仅因为两个data.frames或矩阵共享相同的列名称,并不意味着它们将在其他事物中很好地加入/合并,因为它们之间可能没有任何共同的密钥,这将是内部JOIN情况下的典型结果就像你所描述的一样

检查你的bzShare对象是不是空的,虽然它有vali d列名称(即我怀念的dim(bzShare)结果)

开始:

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

,看看你在每个交集的东西。

+0

谢谢,我检查了工作的路口。现在我只是通过粘贴两个来添加一个新的id列来修复它。然后它工作。 – 2012-04-30 09:48:57