我有两个数据框,一个是失败的公司,另一个是非失败的公司。
它们都包含公司的一系列观察,这些行中的变量包括公司行业,记录财务信息的年份,以及公司和其他公司的总资产规模。
我希望将每家失败的公司与同一行业的一家非经营公司以及总资产规模和财务信息年份进行匹配。
我很高兴抛弃没有比赛的观察。如果一家失败的公司与多家非失败公司匹配,我很乐意随意选择一家公司。
目前,我的代码如下所示:
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