考虑使用2个变量a
和b
的跟随测试数据集:
data test;
infile 'C:\Users\Public\test.dat';
input a b;
run;
proc print data=test;
run;
当我运行此代码时,我得到了所需的数据集。但是,当我添加更多变量时,我会得到更多数字。这些数字来自哪里?
data test;
infile 'C:\Users\Public\test.dat';
input a b c d;
run;
proc print data=test;
run;
答案 0 :(得分:2)
您(可能)看到的是FLOWOVER
的效果,默认SAS修饰符从文件或数据输入(infile
语句中的选项或filename
输入语句)。
当SAS到达一行的末尾,即读取EOL字符,但需要进一步输入时,它可以做一些事情。
这些是FLOWOVER
,MISSOVER
,TRUNCOVER
和STOPOVER
选项。 FLOWOVER
是默认值,很大程度上是因为回程时,由于线路长度有限(在使用穿孔卡时卡片列为80列),因此通常会在多行上显示数据,并且SAS讨厌打破兼容性。
那么你可能在第一组和第二组代码之间看到的是,在第一组中,你看到(比方说)100行×2列。在第二个中,您会看到50行x 4列,第一个文件中的偶数列是新文件中的第3和第4列。