Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS输出不正确_Sas - Fatal编程技术网

SAS输出不正确

SAS输出不正确,sas,Sas,我关心的是我在Odamid中执行的代码片段。代码是: data b; if id lt 3 then output b; input id name $ class $; datalines; 1 Sudha A 2 Gaurav B 3 Saurabh C 4 Preeti D ; run; 这段代码给了我5个观测值的空数值数据集 我担心为什么它会给我5个obs。为什么不是呢 有5个观察结果输出,因为 显式条件输出在输入之前 条件句总是正确的 了解 在数据步循环的顶部,所有非保留变量重置为

我关心的是我在Odamid中执行的代码片段。代码是:

data b;
if id lt 3 then output b;
input id name $ class $;
datalines;
1 Sudha A
2 Gaurav B
3 Saurabh C
4 Preeti D
;
run;
这段代码给了我5个观测值的空数值数据集


我担心为什么它会给我5个obs。为什么不是呢

有5个观察结果输出,因为

显式条件输出在输入之前 条件句总是正确的 了解

在数据步循环的顶部,所有非保留变量重置为 丢失的 如果id<3,则评估为3,这是真的,输出发生 输入隐式检查数据结束条件,如果为true,则步骤终止 输入解析数据行并指定变量值 到达台阶底部 核对

data b;
put 'NOTE: ' _n_= 'before if';
if id lt 3 then output b;
put 'NOTE: ' _n_= 'before input';
input id name $ class $;
put 'NOTE: ' _n_= 'before datalines';
datalines;
1 Sudha A
2 Gaurav B
3 Saurabh C
4 Preeti D
;
run;
---------------- LOG -----------------
NOTE: _N_=1 before if
NOTE: _N_=1 before input
NOTE: _N_=1 before datalines
NOTE: _N_=2 before if
NOTE: _N_=2 before input
NOTE: _N_=2 before datalines
NOTE: _N_=3 before if
NOTE: _N_=3 before input
NOTE: _N_=3 before datalines
NOTE: _N_=4 before if
NOTE: _N_=4 before input
NOTE: _N_=4 before datalines
NOTE: _N_=5 before if
NOTE: _N_=5 before input
NOTE: The data set WORK.B has 5 observations and 3 variables.
建议阅读:

Ian Whitlock,Westat公司,SUGI 22会议记录,1997年。 摘要

本教程回答以下问题:

作为一名DATA step程序员,我需要了解SAS主管的哪些信息?为什么? SAS主管如何处理数据步骤代码? SAS合并如何工作? 那么引擎、索引和视图呢? 当我的数据步骤代码包含宏变量时会发生什么? 如果我的数据步骤调用宏或包含在宏中,该怎么办?
有5个观察结果输出,因为

显式条件输出在输入之前 条件句总是正确的 了解

在数据步循环的顶部,所有非保留变量重置为 丢失的 如果id<3,则评估为3,这是真的,输出发生 输入隐式检查数据结束条件,如果为true,则步骤终止 输入解析数据行并指定变量值 到达台阶底部 核对

data b;
put 'NOTE: ' _n_= 'before if';
if id lt 3 then output b;
put 'NOTE: ' _n_= 'before input';
input id name $ class $;
put 'NOTE: ' _n_= 'before datalines';
datalines;
1 Sudha A
2 Gaurav B
3 Saurabh C
4 Preeti D
;
run;
---------------- LOG -----------------
NOTE: _N_=1 before if
NOTE: _N_=1 before input
NOTE: _N_=1 before datalines
NOTE: _N_=2 before if
NOTE: _N_=2 before input
NOTE: _N_=2 before datalines
NOTE: _N_=3 before if
NOTE: _N_=3 before input
NOTE: _N_=3 before datalines
NOTE: _N_=4 before if
NOTE: _N_=4 before input
NOTE: _N_=4 before datalines
NOTE: _N_=5 before if
NOTE: _N_=5 before input
NOTE: The data set WORK.B has 5 observations and 3 variables.
建议阅读:

Ian Whitlock,Westat公司,SUGI 22会议记录,1997年。 摘要

本教程回答以下问题:

作为一名DATA step程序员,我需要了解SAS主管的哪些信息?为什么? SAS主管如何处理数据步骤代码? SAS合并如何工作? 那么引擎、索引和视图呢? 当我的数据步骤代码包含宏变量时会发生什么? 如果我的数据步骤调用宏或包含在宏中,该怎么办?
您将获得5个观察值,因为数据步骤迭代了5次。第五次,当输入语句读取超过数据末尾时,它停止

所有变量都是空的,因为您在执行输入语句之前执行了输出语句


通常,SAS会在数据步骤的末尾添加一个隐式输出语句。但是,当步骤已经有一个显式输出语句时,它不会添加一个。

因为数据步骤迭代了五次,所以您得到了五个观察值。第五次,当输入语句读取超过数据末尾时,它停止

所有变量都是空的,因为您在执行输入语句之前执行了输出语句


通常,SAS会在数据步骤的末尾添加一个隐式输出语句。但是当步骤已经有一个显式输出语句时,它不会添加一个。

第2行的if是问题所在。尝试将其拆分为两个数据步骤:数据b;输入id名称$class$;。。。。数据b1;b组;如果id lt 3;运行@不需要2个数据步骤,只需将if语句放在输入之后statement@Longfish是的。有人能告诉我上面代码的执行顺序吗?可执行语句是按照它们出现的顺序执行的。问题在于第2行的if。尝试将其拆分为两个数据步骤:数据b;输入id名称$class$;。。。。数据b1;b组;如果id lt 3;运行@不需要2个数据步骤,只需将if语句放在输入之后statement@Longfish是的。有人能告诉我上面代码的执行顺序吗?可执行语句是按照它们出现的顺序执行的。如果SAS progrm中有多个where条件,有人能回答吗,那么为什么输出显示在最后一个位置?@MohitGUpta如果你有新问题,请发布它。请注意,WHERE语句不能像赋值或IF语句那样执行。它只是将数据过滤到数据步骤中。如果SAS progrm中有多个where条件,那么有什么答案吗?为什么最后一个where输出显示?@MohitGUpta如果您有新问题,请发布它。请注意,WHERE语句不能像赋值或IF语句那样执行。它只是将数据过滤到数据步骤中。