filename Source 'C:\Source.txt';
Data Example;
Infile Source;
Input Var1 Var2;
Run;
有没有办法可以在没有"输入Var1 Var2"的情况下从Source.txt导入所有变量。线?如果有很多变量,我认为列出所有变量太费时了,所以我想知道是否有办法绕过它。
由于
答案 0 :(得分:1)
也许你可以使用proc import?
对于CSV我使用它,我不必定义每个变量
proc import datafile="&CSVFILE"
out=myCsvData
dbms=dlm
replace;
delimiter=';';
getnames=yes;
run;
这取决于你的txt文件中有什么。尝试不同的分隔符。
答案 1 :(得分:0)
如果您正在查看基于INFILE语句的解决方案,那么以下参考代码应该有所帮助。
data _null_;
set sashelp.class;
file '/tester/sashelp_class.txt' dsd dlm='09'x;
put name age sex weight height;
run;
/* Version #1 : When data has mixed data(numeric and character) */
data reading_data_w_format;
infile '/tester/sashelp_class.txt' dsd dlm='09'x;
format name $10. age 8. gender $1. weight height 8.2;
input (name--height) (:);
run;
proc print data=reading_data_w_format;run;
proc contents data=reading_data_w_format;run;
/* Version #2 : When all data can be read a character.
I know this version doesn't make sense, but it's still an option*/
data reading_data_wo_format;
infile '/tester/sashelp_class.txt' dsd dlm='09'x;
input (var1-var5) (:$8.); /* Length would be max length of value in all the columns */
run;
proc print data=reading_data_wo_format;run;
proc contents data=reading_data_wo_format;run;
我建议写下要读取的变量的信息,以便确定该文件符合您的规范。 PROC IMPORT将尝试首先从第1行扫描数据直到GUESSINGROWS(如果每列长度一致,不设置为高)值,并根据长度和类型,它将使用它认为合适的信息和长度用于读取文件中的变量。