检查R中的多个值范围

时间:2013-06-01 20:03:06

标签: r if-statement

我有一个包含17000个值的列,我想根据它们的范围将其分类为48个组(将SIC代码分类为Fama法国行业)。

df$SIC
[1] 5080 4911 7359 2834 3674 6324 2810 4512 4400 6331 3728 3350 2911 2085 7340 6311 6199 6321 2771 3844 2870 3823 2836 3825

我能想到的唯一方法是编写一堆if then语句并将它们全部放在for循环中。但是,这将永远运行。

for(i in c(1:(dim(df)[1])){
if(df$SIC[i] >= 0100 && df$SIC[i] <= 0299){df$FF_IND <- "AGRI"}
}
## and so on for all groups

您是否知道执行此任务的方法较少?

非常感谢!

1 个答案:

答案 0 :(得分:1)

类似的东西:

cut(df$SIC,breaks=c(100,299,...),labels=c("AGRI",...))

更全面的解决方案(我现在没有时间)将提取通过http://boards.fool.com/famafrench-industry-codes-26799316.aspx找到的表(下载http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/Siccodes49.zip并解压缩表)并以编程方式查找断点。