I attempted to calculate a formula based on price at different time (). More specifically, donates the first price observed at least 5 minutes after the price which is measured.
The following code is used to create a variable that represents .
data WANT; set HAVE nobs=nobs; do _i = _n_ to nobs until(other_date > date_l_); set HAVE( rename=( _ric=other_ric date_l_= other_date price = other_price new_time = other_time) keep=_ric date_l_ price int1min new_time) point=_i; if other_ric=_ric and new_time > new_time+300 and other_date = date_l_ then do; new_price = other_price; leave; end; end; drop other_: ; run;
However, the code did not work correctly at all time. As shown in the pic, the new_price
is correct in green rectangle but is incorrect in red rectangle. Could anyone help me to solve this problem? I attached a sample of data as well.
Shouldn't it be
if other_ric=_ric and other_time > new_time+300 and other_date = date_l_ then do;
Shouldn't it be
if other_ric=_ric and other_time > new_time+300 and other_date = date_l_ then do;
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 use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.