找回密码
 注册
查看: 2929|回复: 0

跟版主crackman读SAS程序(8)

[复制链接]
发表于 2010-8-27 16:10:22 | 显示全部楼层 |阅读模式

data test;
input r count;
do _n_=1 to count;
    output;
end;
datalines;
1 3
2 5
;
run;

原问题
其实这个程序很好很有意思,值得去思考data步里面读取数据的机制
当程序编译的时候,读到INPUT语句结束之后,开始读入第一调观测 就是 1 3
然后执行 DO循环,因为这个时候COUNT=3是明确了,也就是循环3次,并且输出;
输出完之后继续读入第二条观测,就是2 5 重复第一个步骤。

在这里我用朱老师书上对DATA的处理流程
编译SAS语句,包括语法检查
建立 输入缓冲区、程序数据向量PDV、描述信息
开始数据步语句、反复计数
设定PDV的变量值为缺失
数据读入语句,如果有可以读入的数据,则进入下一步
读入一条数据记录
执行其他的可执行的语句
写入一个观测到数据集中

后面四步循环判断


在这里注意几点:
1.PDV中的变量值开始为缺失的,所以在一个数据集临时一个新变量时,最好retain
2.读入一条数据记录,然后执行对这一条数据记录的可以执行的其他语句(这些语句包括对这条记录里面数据的提取、处理等等)
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 19:14 , Processed in 0.036590 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表