1

我得到了一个大数据表X(504x9)和一个较小的数据框bzShare(323X4),它们的列top.sectorsizeClass. 现在我想将一个值从bzShareinto加入X,以便尺寸为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

仅仅因为两个data.frames或矩阵共享相同的列名并不意味着它们会很好地连接/合并,因为它们之间可能没有任何公共键,这将是内部 JOIN 情况下的典型结果,例如你正在描述的一个。

还要检查您的bzShare对象是否不为空,尽管它具有有效的列名(即我错过了 的结果dim(bzShare)

从...开始:

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

看看你是否在每个集合的交叉点得到了一些东西。

于 2012-04-24T10:57:33.610 回答