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
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.