Hi, I have a fairly simple question.
I have a dataset say A
A looks like the below
a h j
1 0.5 0.6
0.3 1 0.7
0.3 0.9 1
I would like to subtract a number from each entry of A [ lets say subtract 1 from A] therefore
Anew looks like
a h j
0 -0.5 -0.4
-0.7 0 -0.3
-0.7 0.1 0
Then replace the diagonals of Anew with the diagonals of A therefore Anew looks like below
a h j
1 -0.5 -0.4
-0.7 1 -0.3
-0.7 0.1 1
There are only 3 columns but I can have any number of columns
Thanks so much for your help
This would be extremely easy to do in PROC IML, if you have it available
Anew=A-1;
Anew2=Anew-diag(Anew)+diag(A);
This would be extremely easy to do in PROC IML, if you have it available
Anew=A-1;
Anew2=Anew-diag(Anew)+diag(A);
Thanks for your help that is what I used too thought there may be something other than using IML.
You could do this in a data step but it's a little messier. Why do it in a data step if you already have something that works?
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.