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 lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.