1. How to read the space delimited strings as one variable in data step? Ideally I wish to create the table as below with one variable instead of many. Since I've spaces between the strings I couldn't succeed with the data step. Once I created a dataset then I can easily remove the middle characters (m r as per inputs below) via scan & compress function to proceed further for my analysis.
data A;
Input name$ ;
Datalines;
Ra m ku
Ch r is
;
run;
2. My external file has a header like c:name c:zip c:address. Once I import this .csv via proc import, sas dataset variables turn out to be c_name c_zip c_address. i.e. ':' are converted into '_'. How to get rid of this behavior?
I ran all my SAS code in EG 5.1.
Many thanks in advance for your inputs.
Be happy it did that as the headernames are not valid sas-names. This is one of the aspects of using proc import, guessing.
Spaces in a string with a datastep can be handled in many ways, as usual it depends on more contraints. Singel/multiple blanks other recognitions.
May I request you to supply the code to handle the spaces in strings for my requirement?
For the formats you have:
- $varying. SAS(R) 9.4 Formats and Informats: Reference that is apllicable working through the record knowing the length at some moment,
For the input statement list
- SAS(R) 9.4 Formats and Informats: Reference there are modifiers. : & ~
& one space is embedded space going into the variable and than two spaces are the real separation
~ allows quoted strings with space to be processed
For the infile statement you have SAS(R) 9.4 Statements: Reference, Third Edition:
- length=variable is giving you the length of the read record.
- col=variable is giving the position of cursor the input statement is.
- The automatic _INFILE_ variable is filled with the complete record. Available to count the words
With combining some methods you can handle almost every data-structure as long it is logical defined is some known way.
In you example I would prefer the & modifier as it just 1 variable at each dataline .
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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: