全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
12174 11
2013-01-06
复制代码


上面的程序运行结果:

obs   type   address   total
1        H      zd2           0
2        H      sdf            0
3        H      a21a         1
4        H      a21z         3

上面的程序,type=H代表地址,P代表的是在它之前的这个地址的详细信息。
程序是为了统计在某个H地址下面的人口数量。

现在的问题是,数据集里面有5个H,结果跑完只给了4个,最后一个H a21sdf被忽略了。

我尝试在程序里
复制代码

多添加了一句
复制代码





可是结果依然取不出来。
日志显示last未初始化。使用last数据集需要先排序,是排序的话,数据集的顺序就打乱了。

我又试着把
复制代码


改为 :
复制代码


(因为有11条记录)
结果显示为:

obs   type   address   total
1        H      zd2           0
2        H      sdf            0
3        H      a21a         1
4        H      a21z         3

5        H      a21sdf      0


这是我想要的结果。


但是不可能每次都去数一个数据集的记录条数是多少条。。


所以,请问各位大牛有没有什么方法解决这个问题?




二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-6 18:26:36
你把
if _n_>1 then
去掉就好了啊
不知道你加这个判断是干什么的
二维码

扫码加我 拉你入群

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

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

2013-1-6 18:48:16
看你程序看了半天,感慨你对input指针和输出控制的如此精妙。
我没有办法在你原来的代码上解决你的问题,试了一下infile的eof=label,弄了半天没试出来,没用过这个选项。所以为什么不先把数据读入,再想办法处理呢,不一定非要在input的时候弄好他
复制代码
二维码

扫码加我 拉你入群

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

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

2013-1-6 18:54:42
playmore 发表于 2013-1-6 18:26
你把
if _n_>1 then
去掉就好了啊
playmore,你可能没理解他的意图,他这段代码写的很精妙的,因为他是要统计每个H后面P的观测数,而sas是逐行读取数据的,所以用了retain,还有把output放到一个合适的位置,我觉得写得很好的,但是最后一个观测没办法
二维码

扫码加我 拉你入群

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

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

2013-1-6 19:22:32
数据存为外部文件就好,你的结果描述不对吧!
复制代码

二维码

扫码加我 拉你入群

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

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

2013-1-6 19:55:34
复制代码
Obs  type  address total
1    H         zd2    0
2   H         sdf     2
3   H        a21a   1
4  H         a21z    3
5  H        a21sdf     0
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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