I am working on Fama and French(1996) and trying to divide stock returns into 5x5 BExMV portfolios. I tried the if and else if functions presenting as codes below,
if((mkvalt<MV20)&(BM<BM20)){Fin_Ret$port=11}
else if((mkvalt<MV20)&(BM<BM40)){Fin_Ret$port=12}
else if((mkvalt<MV20)&(BM<BM60)){Fin_Ret$port=13}
else if((mkvalt<MV20)&(BM<BM80)){Fin_Ret$port=14}
else if(mkvalt<MV20){Fin_Ret$port=15}
else if((mkvalt<MV40)&(BM<BM20)){Fin_Ret$port=21}
else if((mkvalt<MV40)&(BM<BM40)){Fin_Ret$port=22}
else if((mkvalt<MV40)&(BM<BM60)){Fin_Ret$port=23}
else if((mkvalt<MV40)&(BM<BM80)){Fin_Ret$port=24}
else if(mkvalt<MV40){Fin_Ret$port=25}
else if((mkvalt<MV60)&(BM<BM20)){Fin_Ret$port=31}
else if((mkvalt<MV60)&(BM<BM40)){Fin_Ret$port=32}
else if((mkvalt<MV60)&(BM<BM60)){Fin_Ret$port=33}
else if((mkvalt<MV60)&(BM<BM80)){Fin_Ret$port=34}
else if(mkvalt<MV60){Fin_Ret$port=35}
else if((mkvalt<MV80)&(BM<BM20)){Fin_Ret$port=41}
else if((mkvalt<MV80)&(BM<BM40)){Fin_Ret$port=42}
else if((mkvalt<MV80)&(BM<BM60)){Fin_Ret$port=43}
else if((mkvalt<MV80)&(BM<BM80)){Fin_Ret$port=44}
else if(mkvalt<MV80){Fin_Ret$port=45}
else if(BM<BM20){Fin_Ret$port=51}
else if(BM<BM40){Fin_Ret$port=52}
else if(BM<BM60){Fin_Ret$port=53}
else if(BM<BM80){Fin_Ret$port=54}
else {Fin_Ret$port=55}
However, I got a warning message:
In if ((mkvalt < MV20) & (BM < BM20)) { :
the condition has length > 1 and only the first element will be used
Additionally, all output in the column Fin_Ret$port were presented as "11" How can I correct the issue? Thank you.
Aucun commentaire:
Enregistrer un commentaire