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
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!
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.