【问题标题】:plyr R empty inner joinplyr R 空内连接
【发布时间】:2012-05-04 22:11:14
【问题描述】:

我得到了一个大数据表 X (504x9) 和一个较小的数据框 bzShare (323X4),两者都有 top.sectorsizeClass 列。现在我想将bzShare 的值加入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) 数据框?

【问题讨论】:

    标签: r join gnu plyr


    【解决方案1】:

    仅仅因为两个 data.frames 或矩阵共享相同的列名,并不意味着它们会很好地加入/合并,因为它们之间可能没有任何公共键,这将是一个典型的结果inner-JOIN 情况,就像您描述的那样。

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

    开始于:

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

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

    【讨论】:

    • 谢谢,我检查了有效的交叉点。现在我只是通过粘贴两个来添加一个新的 id 列来修复它。然后就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多