SAS中的数据输入
考虑以下带有两个变量的测试数据集SAS中的数据输入,sas,Sas,考虑以下带有两个变量的测试数据集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=te
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;
您(大概)看到的是FLOWOVER
的效果,它是从文件或数据线输入的默认SAS修饰符(infle
语句或filename
语句上的一个选项)
当SAS到达行尾时,即读取下线字符,但需要进一步输入时,它可以做一些事情
- 它可以转到下一行以获取更多输入
- 它可以停止读入并将当前变量和所有其他变量设置为缺失
- 它可以停止读入并保留当前变量的可用输入,并设置缺少的所有其他变量
- 它可以停止读入,抛出错误,并将控制权返回给用户
飞越
,飞越失误
,特朗科飞越
,以及中途停留
选项FLOWOVER
是默认设置,这主要是因为在很久以前,由于行长度的限制(打孔卡使用时卡列为80列),所以在多行上有数据是很常见的,SAS讨厌破坏兼容性
因此,您可能会在第一组和第二组代码之间看到,在第一组代码中,您会看到(比如)100行x2列。在第二个文件中,您可以看到50行x 4列,第一个文件中的偶数列是新文件中的第3列和第4列。您可以发布(1)test.dat,(2)执行第一个代码块后的结果(只有a和b)和(3)执行第二个代码块后的结果(有b和d)的摘录吗?当你试图提供帮助时,了解你正在使用的数据和你正在接收的输出非常有帮助。