2017-04-12 59 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