Hello everyone,
I want infile a raw data with comma dlm, I don't want to name for each columns so want to use a simple way:
data readraw; infile "c:\test\abc.txt" dsd dlm=',' MISSOVER LRECL=2000 firstobs=2; INPUT var1 $ var2 $ var3 $ var4 var5 $ /*i have total 300 columns need to be read,,,,,,,,,,;*/; RUN;
I have 300 columns need to be read, is there an simple way to do this? like input var1 $ -- var300 ??
I know numeric variable works in this way ,but character not....
Thanks!
Yes
input (var1 - var300) ($);
and if you want to specify length, just do so like
input (var1 - var300) (:$8.);
or using length statement
length var1-var300 $10;
input var1-var300;
Yes
input (var1 - var300) ($);
and if you want to specify length, just do so like
input (var1 - var300) (:$8.);
or using length statement
length var1-var300 $10;
input var1-var300;
Also, you could try this
array var{300} $;
input var{*} ;
and if you want to specify length, just do so like
array var{300} $8;
input var{*} ;
If you don't need all variables as character, try using proc import:
proc import file="c:\test\abc.txt" dbms=csv out=work.class replace;
getnames=no;
run;
(var1 - var5) ($);
this is good answer
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.
Ready to level-up your skills? Choose your own adventure.