I have a really large dataset that looks like this:
ID A B C -- ZZ A_new B_new C-new -- ZZ_new
1 0 1 1 -- 1 1 1 0 0
..
..
I want to perform a test of agreement between all variables of the same name + the suffix
i.e.
proc freq data=dat;
table A*A_new / agree;
table B*B_new / agree;
..
run;
I dont think we can use an array to do a SAS procedure - but is there another way to do this without have to write down every variable name?
Another importnat thing to note is that I only really care about p-values for the kappa statistics right now. Ideally, I could output to a dataset and then sort by p-value to get the variables that are significant.
so I converted to longitudinal, extra vairable being new = 1 or 0. Buy how do a get a kappa statistic with a by statement?
So what I did was concatenate the text to trigger the macro for all the variables in my data:
proc sql;
select cat('%mymacro(',name, ',', cats(name, '_new' ),')') into :renstr separated by ' ' from
dictionary.columns where libname = 'WORK' and memname='DATA';
quit;
Then I just copied and pasted the result into my SAS code....
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.