楼主: dqianli
9824 15

[问答] SAS Base 123题中87题 [推广有奖]

franky_sas 发表于 2016-10-9 13:34:29 |显示全部楼层
sunyuming9401 发表于 2016-10-2 22:36
还有为什么最后的output的name是最后一个 virtualdirect而不是其他的呢?
1. year=1,读取banks的第一行,capital为5000;
2. year=2,读取banks的第二行,capital变为10000;
3. year=3,读取banks的第三行,capital变为15000;
4. year=4,跳出do循环,遇到run,将当前 year=4  name=Virtual  rate=0.0728 capital=15000 输出到newbank,并返回到数据步data newbank语句;
回复

使用道具 举报

sunyuming9401 发表于 2016-10-10 00:26:05 |显示全部楼层
franky_sas 发表于 2016-10-9 13:34
1. year=1,读取banks的第一行,capital为5000;
2. year=2,读取banks的第二行,capital变为10000;
3 ...
谢谢你的回复!
回复

使用道具 举报

littleskydream 发表于 2017-5-3 14:39:44 |显示全部楼层
谢谢, 明白了
回复

使用道具 举报

ccutyuyu 发表于 2017-12-16 19:39:01 |显示全部楼层
本帖最后由 ccutyuyu 于 2017-12-16 19:42 编辑

有没有人讲一下这里的set放在do循环里是一个什么样的数据读入方式?do year=1,一个set,year=2,一个set,看不懂了
回复

使用道具 举报

小小丿凡 学生认证  发表于 2017-12-21 12:43:28 |显示全部楼层
ccutyuyu 发表于 2017-12-16 19:39
有没有人讲一下这里的set放在do循环里是一个什么样的数据读入方式?do year=1,一个set,year=2,一个set,看不 ...
do year=1时,set dataset operates three times. 每次复制一行观测,直到set 的数据集复制完所有观测,再do year=2.
回复

使用道具 举报

yuan_wang 发表于 2018-7-10 13:45:29 |显示全部楼层
/* SAS Base 123 */
/* Question 087 */


/* banks dataset */
data banks;
input name $1-13 rate;
datalines;
FirstCapital  0.0718
DirectBank    0.0721
VirtualDirect 0.0728
;

title 'banks';
proc print data=banks;
run;


/* newbank dataset */
data newbank;
    do year = 1 to 3;
        set banks;
        capital + 5000;
    end;
run;

title 'newbank';
proc print data=newbank;
run;
title;



Results newbank

Obs    year    name                 rate             capital
1        4        VirtualDirect        0.0728        15000
回复

使用道具 举报

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

GMT+8, 2018-9-23 11:28