请选择 进入手机版 | 继续访问电脑版
楼主: suizh
4520 6

sas _n_=1 then set 问题 [推广有奖]

  • 3关注
  • 2粉丝

博士生

53%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
6.5001
学术水平
6 点
热心指数
6 点
信用等级
5 点
经验
87 点
帖子
122
精华
0
在线时间
470 小时
注册时间
2012-10-23
最后登录
2023-12-17

suizh 发表于 2015-3-25 19:53:18 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求教各位,上图上的结果,为什么会是这样的?
二维码

扫码加我 拉你入群

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

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

关键词:Then Set The

}A0(E~A[223ULUP9XFSPY5D.jpg
已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

pobel 在职认证  发表于 2015-3-26 09:26:22 |显示全部楼层 |坛友微信交流群
应该是这样:
data loop1:_n_=1, 读取数据集第一条;执行到RUN;时输出到数据集a;
data loop2:_n_=2, PDV中,来自数据集的变量不会被置为空值;
                 IF条件不满足,不会读取记录,此时PDV中还是第一条记录的变量值;
                 执行到RUN;输出到数据集;
                 由于这个data loop中SAS没有读取数据,因此“DATA STEP stopped due to looping.”

使用道具

wpfwxn 发表于 2015-3-26 15:06:03 |显示全部楼层 |坛友微信交流群
pobel 发表于 2015-3-26 09:26
应该是这样:
data loop1:_n_=1, 读取数据集第一条;执行到RUN;时输出到数据集a;
data loop2:_n_=2,  ...
楼上,你理解的应该是对的,这个问题也困惑过我好久

使用道具

wpfwxn 发表于 2015-3-26 15:11:52 |显示全部楼层 |坛友微信交流群
楼上举得例子会得到2条一样的记录,在实际中可能不需要,刻意该做:
data test;
        if _N_ = 1 then do;
      set sashelp.class;
          output;
          stop;
        end;
run;

使用道具

suizh 发表于 2015-4-1 18:29:15 |显示全部楼层 |坛友微信交流群
pobel 发表于 2015-3-26 09:26
应该是这样:
data loop1:_n_=1, 读取数据集第一条;执行到RUN;时输出到数据集a;
data loop2:_n_=2,  ...
非常感谢!

使用道具

simoncx 发表于 2018-4-2 09:58:00 |显示全部楼层 |坛友微信交流群
pobel 发表于 2015-3-26 09:26
应该是这样:
data loop1:_n_=1, 读取数据集第一条;执行到RUN;时输出到数据集a;
data loop2:_n_=2,  ...
你好!比如我们知道class这里面的数据集有19个观测,那么为什么当写_n_<=20的时候就可以正好显示这19个人而不会在最后有重复呢?

使用道具

pobel 发表于 2015-3-26 09:26
应该是这样:
data loop1:_n_=1, 读取数据集第一条;执行到RUN;时输出到数据集a;
data loop2:_n_=2,  ...
大神!学习了,谢谢~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-16 13:13