全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2657 11
2016-02-04
data aaaa;
set sashelp.class;
    if _N_ = 0;
stop;
run;
data bbbb;
  set aaaa;
  name = '奇怪';
  output;
run;

以上述为例,aaaa数据集为空,为啥不能直接增加观测呢?

欢迎大家发言,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-2-4 11:27:18
我的推测是,output是在_n_后面加1然后输出,aaaa的_n_不是0,而是不存在,所以不能output;

data aaaa;
set sashelp.class;
    if _N_ = 0;
stop;
run;
proc sql noprint;
insert into aaaa set name="Andy";
quit;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-4 20:41:10
1.
数据步运行到 run 语句的时候将 pdv 里的数据写入输出数据集.
if 语句为 true 时, 运行下面的语句, 否则反回 data 语句.
数据步的循环从 _n_ = 1 开始.
这段程序的 if _n_ = 0 语句为false, 所以不会运行 run 语句来输出数据.

2
数据步运行到 stop 语句会结束。 所以既使没有 if 语句 aaaa 也会为空。

data aaaa;
  put _n_=;
    set sashelp.class;
    if _n_ =1;
   put "A " _n_= ;
*    stop;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-5 03:38:54
wpfwxn 发表于 2016-2-4 05:20
data aaaa;
set sashelp.class;
    if _N_ = 0;
如何验证_n_不存在?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-5 03:41:34
yongyitian 发表于 2016-2-4 20:41
1.
数据步运行到 run 语句的时候将 pdv 里的数据写入输出数据集.
if 语句为 true 时, 运行下面的语句, ...
aaaa数据集为空我是知道的,我想弄明白的是第二个data步中没有观测,是为什么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-5 03:43:12
yongyitian 发表于 2016-2-4 20:41
1.
数据步运行到 run 语句的时候将 pdv 里的数据写入输出数据集.
if 语句为 true 时, 运行下面的语句, ...
output没有用,赋值语句也没有用,为什么呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群