Recently in the SAS Community Library: Your often contains the information you need, but not sequenced in the order required for processing. @SASJedi shows you how to properly sequence data so you can compare the data in one table to the data in another, conduct merges or joins and more.
Is there an easy way to create a variable called match which will list all the IDs that are the same? The data is in the format below. Any help would be greatly appreciated.
ID_A ID_B ID_C ID_D MATCH
1 1 1 1 A,B,C,D
2 2 2 3 A,B,C
3 4 4 4 B,C,D
1 1 3 5 A.B
... View more
How can I change this macro to create all the variables in one data set? I want First_ADD and Second_ADD in the out flag data set. I want to do this for multiple varibles using the macro but it keeps overwriting itself and keeping the last flag that was created by the macro. Thank you!
%MACRO FLAG(VAR1,VAR2,FLAGNAME); DATA FLAG; SET RULE1; &FLAGNAME=0; DO _N_=1 to countw(&VAR1,',') while(&FLAGNAME=0); word=scan(&VAR1,_N_,','); if word=' ' then continue; if indexw(trim(&VAR2),trim(word),',') then &FLAGNAME=1; end; drop word; run; %MEND FLAG;
%FLAG(Addresses1,Addresses2,First_ADD); %FLAG(Addresses1,Addresses3,Second_ADD);
... View more
Hello Experts,
My code is :
AnneeSemaine=compress(year(datepart (MaDate))||"-"||week(datepart(MaDate),'v'));
I have the value 2023-9, do you know please some easy option to get 2023-09?
My second line of code is :
Moisjour=compress(month(datepart (MaDate))||"-"||day(datepart(MaDate)));
I have the value 9-2, do you know please how to get the value 09-02 ?
Thank you for your help !
... View more
Hello everybody, I have a question about designing a discrete choice experiment. My design contains: 2 unlabeled alternatives (Alt 1 and Alt 2) 5 attributes (x1, x2, x3, x4, x5) with three levels (0 = underachieved, 1 = sufficient, 2 = overachieved) 1 cost-attribute (x6) with four levels (0 = 0, 1 = 1%, 2 = 2%, 3 = 3%) Interaction effects between each of the 5 attributes (x1 – x5) and the cost attribute (x6) Restriction to avoid comparing Alt 1 with better attributes and lower costs with an Alt 2 with worse attributes and higher costs (and vice versa) Following the book “Marketing Research Methods in SAS” by Warren Kuhfeld, I created the following code: %mktruns(3 3 3 3 3 4, interact=x1*x6 x2*x6 x3*x6 x4*x6 x5*x6);
%mktex(3 3 3 3 3 4, seed = 200, n=144, interact=x1*x6 x2*x6 x3*x6 x4*x6 x5*x6);
%macro res;
g1 = (x[1,1:5])[+]; * Attributes in alt 1;
g2 = (x[2,1:5])[+]; * Attributes in alt 2;
bad = bad + (g1 > g2 & x[1,6] < x[2,6]); * Better attributes in 1 and lower price in 1;
bad = bad + (g2 > g1 & x[2,6] < x[1,6]); * Better attributes in 2 and lower price in 2;
%mend;
%mktlab(data=design, int=f1-f2)
proc print; run;
%choiceff(data=final, model=class(X1-X6), nsets=72, maxiter=20, seed=200, flags=f1-f2, options=relative, restrictions=res, resvars=X1-X6, beta=zero);
proc print; by set; id set; run;
%mktblock(data=best, nalts=2, nblocks=8, seed=200, maxiter=20); The final results are as follows: Finally, I still have the following questions: Is it correct to use the %mktex macro with n = 144 and the %choiceff macro with nsets = 72? Unfortunately, I don't understand exactly how the recommended size of the kandidate set relates to the size of the choice sets. Is my design able to estimate all parameters? Thank you so much!!
... View more