Loops SAS连续环路
我可以理解为什么它是数据测试的连续循环,但我不知道如何解释为什么数据m1不是无限循环。(t1有29条记录)Loops SAS连续环路,loops,sas,continuous,Loops,Sas,Continuous,我可以理解为什么它是数据测试的连续循环,但我不知道如何解释为什么数据m1不是无限循环。(t1有29条记录) 有人有什么想法吗?感谢您的帮助。M1步骤中的第一个SET语句定义了数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 每当出现文件结束条件时(当不再存在记录
有人有什么想法吗?感谢您的帮助。M1步骤中的第一个SET语句定义了数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 M1步骤中的第一个SET语句定义数据步骤何时停止。它看到T1数据集的结束并停止 每当出现文件结束条件时(当不再存在记录时,尝试从文件或数据集读取数据),数据步骤就会“停止” 在第一个示例中,数据步骤从名为
t1
的表(数据集)中读取记录,然后从表t2
中读取29条记录。输出表m1
的记录数将与t1
中的记录数相同。一旦该步骤尝试从t1
读取新记录,该步骤将立即停止
第二个示例将永远运行,因为它从未遇到文件结束条件。它将继续输出记录,直到磁盘空间用完或中断该步骤。每当出现文件结束条件时(当不再存在记录时,尝试从文件或数据集读取数据),数据步骤将“停止”
在第一个示例中,数据步骤从名为t1
的表(数据集)中读取记录,然后从表t2
中读取29条记录。输出表m1
的记录数将与t1
中的记录数相同。一旦该步骤尝试从t1
读取新记录,该步骤将立即停止
第二个示例将永远运行,因为它从未遇到文件结束条件。它将继续输出记录,直到磁盘空间用完或中断该步骤。每当出现文件结束条件时(当不再存在记录时,尝试从文件或数据集读取数据),数据步骤将“停止”
在第一个示例中,数据步骤从名为t1
的表(数据集)中读取记录,然后从表t2
中读取29条记录。输出表m1
的记录数将与t1
中的记录数相同。一旦该步骤尝试从t1
读取新记录,该步骤将立即停止
第二个示例将永远运行,因为它从未遇到文件结束条件。它将继续输出记录,直到磁盘空间用完或中断该步骤。每当出现文件结束条件时(当不再存在记录时,尝试从文件或数据集读取数据),数据步骤将“停止”
在第一个示例中,数据步骤从名为t1
的表(数据集)中读取记录,然后从表t2
中读取29条记录。输出表m1
的记录数将与t1
中的记录数相同。一旦该步骤尝试从t1
读取新记录,该步骤将立即停止
第二个示例将永远运行,因为它从未遇到文件结束条件。它将继续输出记录,直到磁盘空间用完或中断该步骤。其他人所说的是正确的。SAS数据步骤是一个隐式循环,在满足特定条件时结束。我认为第二个数据步骤是连续无限的,因为do循环之外没有
setDataSet
语句。因此,数据步骤循环不知道关于文件结尾(EOF)的任何信息。do
循环内的点
未观察到EOF,因此无法停止
在data test
中,结束无限循环的条件触发器是set
语句,它位于do
循环之外,因为数据集的条目数量有限。这意味着EOF是可到达的。一旦数据集循环被告知已达到EOF且无法进一步读取,它将结束循环
此外,还可以使用其他触发器,如
停止代码>语句或提示用户按一些键结束循环 其他人所说的是对的。SAS数据步骤是一个隐式循环,在满足特定条件时结束。我认为第二个数据步骤是连续无限的,因为do循环之外没有setDataSet
语句。因此,数据步骤循环不知道关于文件结尾(EOF)的任何信息。do
循环内的点
未观察到EOF,因此无法停止
在data test
中,结束无限循环的条件触发器是set
语句,它位于do
循环之外,因为数据集的条目数量有限。这意味着EOF是可到达的。一旦数据集循环被告知已达到EOF且无法进一步读取,它将结束循环
此外,还可以使用其他触发器,如停止代码>语句或提示用户按一些键结束循环 其他人所说的是对的。SAS数据步骤是一个隐式循环,在满足特定条件时结束。我认为第二个数据步骤是连续无限的,因为do循环之外没有setDataSet
语句。因此,数据步骤循环不知道关于文件结尾(EOF)的任何信息。do
循环内的点
未观察到EOF,因此无法停止
在数据测试中,结束无限循环的条件触发器是
data m1;
set t1;
do i = 1 to 29;
set t2 point=i;
end;
run;
data test;
do i=1 to 29;
set t2 point=i;
end;
run;