I'm running a corr function in iml, e.g.,
proc iml;
use want_ret;
read all var _NUM_ into x[colname=permno];
close want_ret;
corr=corr(x);
print corr;
quit; run;
Because my data has some missing value I get an execution error - "Invalid argument or operand; contains missing value."
I found this page which seems to suggest that I should be able to compute it with missing values: http://support.sas.com/documentation/cdl/en/imlug/64248/HTML/default/viewer.htm#imlug_langref_sect05...
I thought the syntax would be corr(x,Pearson,pairwise); but that doesn't seem to work either. Any ideas? I'd like the correlation even though I'm missing just a few observations in the time series.
Thanks,
Rick
The CORR function supports missing values:
proc iml;
use sashelp.class;
read all var _NUM_ into X;
X[{1 7 19 32}]=.;
c = corr(x);
print c;
print (countmiss(X,"col"));
In fact, you can have all missing values and hte CORR function still doesn't return an error:
X = j(10,3,.);
c = corr(x);
print c;
This assumes that you are running SAS/IML 9.22 or later. Please copy/paste the EXACT contents of the SAS log.
By the way, if you use optional arguments, be sure to enclose them in quotes
corr(x,"Pearson","pairwise");
as specified in the doc.
I appear to be running sas 9.2. If I hit about sas it says SAS 9.2 TS Level 2M2, X64_VSPRO platform. Is that the issue?
thanks,
Rick
I think that TS2M3 is the stealth SAS/Stat upgrade to 9.22.
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 how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.