全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
17618 6
2012-05-23
data WORK.TEST;
     infile datalines;
     input
        Name $ 1-14 /
        Address $ 1-14 /
        City $ 1-9 ;
   drop City;
     if City='New York ' then input @1 State $2.;
     else input;
  datalines;
Joe Conley
123 Main St.
Janesville
WI
Jane Ngyuen
555 Alpha Ave.
New York
NY
Jennifer Jason
666 Mt. Diablo
Eureka
CA
  ;
run;

这是一个sas的考试题,但是我稍微改了一下drop city的位置。刚开始我以为所用关于State的值全部是空的,因为在if语句之前有了drop city语句。city就不存在了。
但是我运行了一下,发现结果是这样的: 捕获.PNG ,怎么还会有NY这个值呢?
由此可以看出drop语句是在一个数据迭代过程之后才发挥作用的,并不是在其间发挥作用的。
我为了还自己又创建了一个简单的数据集验证了一下。
这是个人一点看法。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-5-23 09:57:44
drop可以看成只是一个标志,他并不会去对原表进行处理,只是对新表中不包含city这一列,if City='New York ' then input @1 State $2.; 这句话的数据源还是你的datalines的数据
二维码

扫码加我 拉你入群

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

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

2012-5-23 10:38:25
你对这个问题的发现证明你的确想学习SAS,不是背题应付考试。给lz一个建议,你把pdv搞懂后就能彻底理解这个问题。
二维码

扫码加我 拉你入群

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

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

2012-5-23 11:11:20
drop 语句只是在OUTPUT到数据集时起作用,Drop的变量仍在PDV里。
二维码

扫码加我 拉你入群

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

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

2012-6-28 13:58:43
O(∩_∩)O谢谢
二维码

扫码加我 拉你入群

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

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

2014-4-17 10:02:28
get,谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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