2017-04-12 145 views
0

我是一名金融专业的学生,​​过去几周一直在R玩(新手在这里..)。
问题:我有两个数值变量:A和B.而且我想在一个cathegorical变量。C把这些取下列值:
1,如果A和B都得分顶端10% - 或五分之一的分配。
0否则

有没有人有任何想法如何实现这一点?先谢谢你!将数值变量更改为分类变量?

+4

欢迎来到SO!请阅读[问]和[mcve] ...然后编辑您的问题:http://stackoverflow.com/posts/43364844/edit – jogo

回答

0

如果我得到你的意思吧,你可以使用这个功能:

get_categorical = function(A,B,decile=9){ 
     da = as.numeric(quantile(A,probs=seq(0.1,0.9,by=0.1)))[decile]; 
     db = as.numeric(quantile(B,probs=seq(0.1,0.9,by=0.1)))[decile]; 
     categ = ifelse(A>=da & B>db,1,0); 
     return (categ); 
    } 

现在,您可以设置A和B作为参数:

get_categorical(A,B) 

希望它能帮助。

+0

非常感谢您的回复。能够创建变量如下:dummyVariabele < - ifelse((Mergeddata $ ABS_DA> = quantile(Mergeddata $ ABS_DA,c(0.9),na.rm = TRUE))&(Mergeddata $ RM_Proxy> = quantile(Mergeddata $ RM_Proxy ,c(0.9),na.rm = TRUE)),1,0)。 – Simon