Hello, In the “allvar” dataset, variables divi, rd, and sin take values of either 0 or 1; variable divo takes values -1 or 0. I am using this data set to create portfolios for each date (newdatadate in my case). I am using PROC RANK and group them into 5 before creating portfolios. My Code: OPTIONS MPRINT SYMBOLGEN; %LET avars = divi divo rd sin ; * Note: (I have more than 60 variables here); %LET n_avars=%SYSFUNC(countw(&avars)); %PUT &n_avars; %LET grp = 5; PROC SORT DATA = allvar; BY newdatadate; RUN; PROC RANK DATA=allvar OUT=allvar_ranked group=&grp; BY newdatadate; VAR &avars; RUN; I think, in the allvar_ranked dataset, variables divi, divo, rd, and sin should have only two different ranked values since they already had taken two values before they were ranked. However, it’s not the case. When I run the following (before running proc rank): proc sql; select distinct divi from allvar; quit; * Values: ., 0, 1 ; proc sql; select distinct divo from allvar; quit; * Values: ., 0,-1 ; proc sql; select distinct rd from allvar; quit; * Values: 0, 1 ; proc sql; select distinct sin from allvar; quit; * Values: ., 0, 1 ; When I run the same in the ranked dataset: proc sql; select distinct divi from allvar_ranked; quit; * Ranked Values: ., 0, 2, 3, 4 ; proc sql; select distinct divo from allvar_ranked; quit; * Ranked Values: ., 0, 1, 2, 3 ; proc sql; select distinct rd from allvar_ranked; quit; * Ranked Values: 1, 2, 4 ; proc sql; select distinct sin from allvar_ranked; quit; * Ranked Values: ., 2, 4 ; I was using this command previously and have never encountered this problem. How can I fix this? Thank you!
... View more