Dear Members,
I have below piece of inputs with comma separated entries with 5 columns. I need to extract only column first (e.g, ABC), four (e.g., 654), and fifth (e.g., 14/04/2023 14:17:14), can someone suggest best way to get these.
Input:
"ABC","DATA","G:\Data\ces 202302.csv",654,14/04/2023 14:17:14
"ABC","DATA","G:\Data\ces 202302.csv.bak",654,14/04/2023 14:00:41
"XYZ","DATA","G:\Data\ces 202303.csv",5770,14/04/2023 14:17:39
"XYZ","DATA","G:\Data\ces 202303.csv.bak",5770,14/04/2023 09:49:28
"DEF","DATA","G:\Data\CES individuele.xlsx",104637,23/03/2023 14:53:38
"DEF","DATA","G:\Data\CES.xlsx",23370,23/03/2023 14:53:19
"DEF","DATA","G:\Data\12GR.csv",539,08/02/2023 15:12:13
Output:
"ABC",654,14/04/2023 14:17:14
"ABC",654,14/04/2023 14:00:41
"XYZ",5770,14/04/2023 14:17:39
"XYZ",5770,14/04/2023 09:49:28
"DEF",104637,23/03/2023 14:53:38
"DEF",23370,23/03/2023 14:53:19
"DEF",539,08/02/2023 15:12:13
I would suggest reading that fifth column as a datetime value.
data want; infile cards delimiter=','; length dummy $8 first $8 four 8; informat fifth anydtdtm30.; format fifth datetime19.; input first dummy dummy four fifth; drop dummy; cards; "ABC","DATA","G:\Data\ces 202302.csv",654,14/04/2023 14:17:14 "ABC","DATA","G:\Data\ces 202302.csv.bak",654,14/04/2023 14:00:41 "XYZ","DATA","G:\Data\ces 202303.csv",5770,14/04/2023 14:17:39 "XYZ","DATA","G:\Data\ces 202303.csv.bak",5770,14/04/2023 09:49:28 "DEF","DATA","G:\Data\CES individuele.xlsx",104637,23/03/2023 14:53:38 "DEF","DATA","G:\Data\CES.xlsx",23370,23/03/2023 14:53:19 "DEF","DATA","G:\Data\12GR.csv",539,08/02/2023 15:12:13 ;run;
I would probably import all fields and then use DROP or KEEP statement to get the desired output.
You can "skip" variables by reading them into a dummy (which you drop):
data want;
infile cards delimiter=',';
length dummy $8 first $8 four 8 fifth $30;
input first dummy dummy four fifth;
drop dummy;
cards;
"ABC","DATA","G:\Data\ces 202302.csv",654,14/04/2023 14:17:14
"ABC","DATA","G:\Data\ces 202302.csv.bak",654,14/04/2023 14:00:41
"XYZ","DATA","G:\Data\ces 202303.csv",5770,14/04/2023 14:17:39
"XYZ","DATA","G:\Data\ces 202303.csv.bak",5770,14/04/2023 09:49:28
"DEF","DATA","G:\Data\CES individuele.xlsx",104637,23/03/2023 14:53:38
"DEF","DATA","G:\Data\CES.xlsx",23370,23/03/2023 14:53:19
"DEF","DATA","G:\Data\12GR.csv",539,08/02/2023 15:12:13
;run;
I would suggest reading that fifth column as a datetime value.
data want; infile cards delimiter=','; length dummy $8 first $8 four 8; informat fifth anydtdtm30.; format fifth datetime19.; input first dummy dummy four fifth; drop dummy; cards; "ABC","DATA","G:\Data\ces 202302.csv",654,14/04/2023 14:17:14 "ABC","DATA","G:\Data\ces 202302.csv.bak",654,14/04/2023 14:00:41 "XYZ","DATA","G:\Data\ces 202303.csv",5770,14/04/2023 14:17:39 "XYZ","DATA","G:\Data\ces 202303.csv.bak",5770,14/04/2023 09:49:28 "DEF","DATA","G:\Data\CES individuele.xlsx",104637,23/03/2023 14:53:38 "DEF","DATA","G:\Data\CES.xlsx",23370,23/03/2023 14:53:19 "DEF","DATA","G:\Data\12GR.csv",539,08/02/2023 15:12:13 ;run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.