如何根据两个非唯一变量匹配R中的数据集?

时间:2015-09-02 10:21:47

标签: r merge match

我有两个数据框,一个是失败的公司,另一个是非失败的公司。

它们都包含公司的一系列观察,这些行中的变量包括公司行业​​,记录财务信息的年份,以及公司和其他公司的总资产规模。

我希望将每家失败的公司与同一行业的一家非经营公司以及总资产规模和财务信息年份进行匹配。

我很高兴抛弃没有比赛的观察。如果一家失败的公司与多家非失败公司匹配,我很乐意随意选择一家公司。

目前,我的代码如下所示:

merge(cessdurc1[cessdurc1$afcyear=="2007",], cessdura[cessdura$afcyear=="2007",], by=c("ssic", "total_assets"), all.x=TRUE, all.y=FALSE)

这不起作用,因为所选列必须是唯一的。

我的数据如下:

>head(alivefirms)
  failed within year total_assets afcyear ssic
1              0        9e+07    2007   20
2              0        7e+06    2007   43
3              0        7e+05    2007   46
4              0        1e+07    2007   82
5              0        1e+08    2007   93
6              0        1e+06    2007   11

> head(failedfirms)
    failed within year total_assets afcyear ssic
26                1        20000    2007   41
79                1         5000    2007   73
105               1          400    2007   30
127               1         4000    2007   18
133               1         2000    2007   70
154               1        10000    2007   41

我希望输出能够将失败的公司与具有相同SSIC&总资产& Afcyear,所以看起来像这样的东西

> head(wantedoutput)
    failed within year total_assets afcyear ssic
26                1       20000     2007   41
79                0       20000     2007   41
105               1         400     2007   30
127               0         400     2007   30
133               1        2000     2007   70
154               0        2000     2007   70

0 个答案:

没有答案