Hi, I have a question about how to deal with each column using macro. Here is what the sample looks like: date time interval weekday fj_dummy jump surec1 surec2 surus1 surus2 surus3 suruk1 suruk2 11/1/2004 09:00.0 2 2 0 0 2 1 11/1/2004 14:00.0 3 2 0 0 1 3 11/1/2004 19:00.0 4 2 0 0 1 2 11/1/2004 24:00.0 5 2 0 0 4 1 11/1/2004 29:00.0 6 2 0 0 For each time, I just want to deal with 'date','time','interval','weekday','fj_dummy','jump', and one of the rest of the columns. I only want to keep the observations that are non-missing and delete the missing observations. I realized I need to use macro since my whole sample is much bigger than the sample displayed here. I don't know within each 'ec','us','uk' category how to select the non-missing observations for each subcategory, which is 'surec1', 'surec2', etc. If possible, can I export the files with macro for each subcategory and also keep 'date','time','interval','weekday','fj_dummy','jump' ? That is to say, in each file, I have date','time','interval','weekday','fj_dummy','jump' and one of the rests of columns. This is one of the csv files called EUR, I also have two other csv files with the same structure as this. So I'm wondering in this case, do I need more than one macro? Here is the code I wrote, but I was stuck here for a long time. Any help would be appreciated. %let path=E:\one_drive\OneDrive\RA\Jumps; /*Set path*/
libname RA "&path";
%Macro news(cur);
PROC IMPORT OUT= RA.&cur._jump
DATAFILE= "&path\Data\&cur._jump_news_abs1.csv"
DBMS=CSV REPLACE;
GETNAMES=yes;
DATAROW=2;
RUN;
DATA RA.&cur._jump;
set RA.&cur._jump;
IF fj_dummy=0 THEN DELETE;
RUN;
%Mend news;
%news (EUR);
%news (GBP);
%news (JPY);
%Macro currency(cur);
data RA.&cur._jump;
set RA.&cur._jump;
%macro surprise(cur,n_f,n_e);
%do i=&n_f %to &n_e;
IF sur&cur.&i.=. THEN sur&cur.&i.=0;
%end;
%mend surprise;
%surprise(ec,1,16);
%surprise(us,1,43);
%surprise(fr,1,3);
%surprise(ge,1,13);
%surprise(it,1,8);
%surprise(jp,1,3);
%surprise(po,1,2);
%surprise(sp,1,4);
%surprise(uk,1,13);
run;
%Mend currency;
%currency(EUR);
%currency(GBP);
%currency(JPY);
%Macro currency(cur);
%Macro country(con);
DATA RA.&cur._jump_sur&con.;
set RA.&cur._jump;
Keep Date time interval weekday fj_dummy jump sur&con.:;
RUN;
%Mend country;
%country(ec);
%country(us);
%country(fr);
%country(ge);
%country(it);
%country(jp);
%country(po);
%country(sp);
%country(uk);
%Mend currency;
%currency(EUR);
%currency(GBP);
%currency(JPY);
... View more