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

Hi , I have to import a CSV file as a SAS Dataset . The CSV file has various fields which have list of values separated by a delimiter. For example there is a variable citizenship with values like French;Spanish .

I am unable to figure out how to read this list using the input statement in data step.

 

Attaching a dummy CSV file as an example.

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

Read it into a temporary variable, and use a DO loop to split the data into observations:

data want;
infile
  "/folders/myfolders/test.csv"
  dsd
  truncover
  firstobs=2
;
input uid $ _fav_color :$100.;
length fav_color $20;
do i = 1 to countw(_fav_color,"~");
  fav_color = scan(_fav_color,i,"~");
  output;
end;
drop _fav_color;
run;

View solution in original post

2 REPLIES 2
Kurt_Bremser
Super User

Read it into a temporary variable, and use a DO loop to split the data into observations:

data want;
infile
  "/folders/myfolders/test.csv"
  dsd
  truncover
  firstobs=2
;
input uid $ _fav_color :$100.;
length fav_color $20;
do i = 1 to countw(_fav_color,"~");
  fav_color = scan(_fav_color,i,"~");
  output;
end;
drop _fav_color;
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1184 views
  • 0 likes
  • 2 in conversation