我希望将整个行业/父级代码分配给包含更详细/子代码(称为下面的data.frame )的df (df )。以下数据说明了包含详细代码的data.frame:
> df <- as.data.frame(cbind(c(1,2,3,4,5,6),c(110,101,200,2041,3651,2102)))
> names(df) <- c('Id','ChildCodes')
> df
Id ChildCodes
1 1 110
2 2 101
3 3 200
4 4 2041
5 5 3651
6 6 2102行业/父代码在这里的.csv文件中:https://www.dropbox.com/s/5qtb7ysys1ar0lj/IndustryCodes.csv
对我来说,问题是.csv文件的格式。该文件在第1列中显示父/行业代码,在接下来的2列中显示子/详细代码的范围。下面是一个子集:
> IndustryCodes <- as.data.frame(cbind(c(1,1,2,5,6),c(100,200,2040,2100,3650),c(199,299,2046,2199,3651)))
> names(IndustryCodes) <- c('IndustryGroup','LowerRange','UpperRange')
> IndustryCodes
IndustryGroup LowerRange UpperRange
1 1 100 199
2 1 200 299
3 2 2040 2046
4 5 2100 2199
5 6 3650 3651因此,ChildCode 110对应于行业组1,2041年与行业代码2等。如何最好地将行业/母公司代码(IndustryGroup)分配给R中的df?
谢谢!
发布于 2014-02-28 15:09:48
您可以使用sapply获取每个子代码的行业代码:
sapply(df$ChildCodes,
function(x) IndustryCodes$IndustryGroup[IndustryCodes$LowerRange <= x &
x <= IndustryCodes$UpperRange])
# [1] 1 1 1 2 6 5https://stackoverflow.com/questions/22098244
复制相似问题