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....
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.