BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Daniel1027
Obsidian | Level 7

Hello eveyrone,

 

I was trying to implement this code. unforutnately, sas does not recognize my intnx. what shoud i do?

Best wishes,

Sincerely Daniel.

 

ROC SQL;
CREATE TABLE crsp_m2
AS SELECT A.*, B.dlret,
sum(1,ret)*sum(1,dlret)-1 as retadj "adjusted return for delisting",
abs(a.prc*a.shrout) as MEq 'Market Value of Equity'
FROM CRSP_M AS A LEFT JOIN tmp1.msedelist (where=(missing(dlret)=0 ) ) AS b
ON a.permno=b.permno AND
intnx('month',a.date,0,'E')=intnx('month',b.DLSTDT,0,'E')
ORDER BY date, permco, MEq;
QUIT;

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

Post your log or explain how it doesn't work please.

 

I think your error is In how you want to name the variable with spaces. If you want spaces in a variable name the you wrap it in quotes and add an N afterwards. You're missing the N from both variable names. 

View solution in original post

5 REPLIES 5
Reeza
Super User

Post your log or explain how it doesn't work please.

 

I think your error is In how you want to name the variable with spaces. If you want spaces in a variable name the you wrap it in quotes and add an N afterwards. You're missing the N from both variable names. 

Daniel1027
Obsidian | Level 7
DATA crsp_m (KEEP=permco permno date ticker ncusip shrcd exchcd prc ret retx shrout cfacpr cfacshr exchcd);
MERGE tmp1.mse tmp1.msf;
BY permno date;
RUN;
PROC SORT DATA=crsp_m OUT=crsp_m;
BY date permno;
RUN;
PROC SQL;
CREATE TABLE crsp_m2
AS SELECT A.*, B.dlret,
sum(1,ret)*sum(1,dlret)-1 as retadj "adjusted return for delisting",
abs(a.prc*a.shrout) as MEq 'Market Value of Equity'
FROM CRSP_M AS A LEFT JOIN tmp1.msedelist (where=(missing(dlret)=0 ) ) AS b
ON a.permno=b.permno AND
intnx('month',a.date,0,'E')=intnx('month',b.DLSTDT,0,'E')
ORDER BY date, permco, MEq;
QUIT;

this is the entire code i am trying.
LOG:
NOTE: Invalid (or missing) arguments to the ABS function have caused the function to return a
missing value.
NOTE: Invalid argument 2 to function INTNX. Missing values may be generated.
Astounding
PROC Star

Have you confirmed that your date variables are actually dates, and not date-times?  Date-time values would likely be too large for INTNX to handle.

Daniel1027
Obsidian | Level 7
i am novice to sas. how do i confirm? i am dealing with 10gb dataset. one thing: why is abs not working?
Reeza
Super User

The ABS() function works fine, but you have missing values for one of the variables in the function and the log is warning you that in this case you will get a missing value returned. 

sas-innovate-2024.png

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.

 

Register now!

What is Bayesian Analysis?

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 4562 views
  • 1 like
  • 3 in conversation