全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1847 5
2013-04-16
代码如下:

data a;   do n=1 to 100;
    output;
  end;
data b;
  set a end=last ;
  t+n; *1;
  if last then output;
run;

我感觉到疑惑的地方是1注释处的语句。这里t变量没有赋初值,t+n本身也不是赋值语句,而且也不是循环结构
可t最后的值是5050,真的好难理解。请问这应该如何理解呢?
谢谢!



二维码

扫码加我 拉你入群

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

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

全部回复
2013-4-16 12:00:48
t+n是累加语句。
二维码

扫码加我 拉你入群

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

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

2013-4-16 12:06:15
didizhang 发表于 2013-4-16 12:00
t+n是累加语句。
谢谢!能再详细解释一下累加语句吗?
我是学C语言过来的,对累加语句这种机制不是很理解。
二维码

扫码加我 拉你入群

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

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

2013-4-16 12:13:34
T+n; 这是一个累加语句,出现这个语句,就默认retain t; t没有赋初值,那么默认初值为0

所以t+n全部语语是:
retain t;
t=0;
t=t+n;
二维码

扫码加我 拉你入群

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

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

2013-4-17 14:43:23
Imasasor 发表于 2013-4-16 12:13
T+n; 这是一个累加语句,出现这个语句,就默认retain t; t没有赋初值,那么默认初值为0

所以t+n全部语语 ...
谢谢!
二维码

扫码加我 拉你入群

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

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

2013-4-18 00:32:00
所以t+n全部语语是:
retain t;
t=0;
t=t+n;
验证好像有点问题,这样输出的T貌似就是n了,retain的作用没有体现出来。
上网查了一下,验证可行,可以这么做
retain t(0);  *括号内为t的初值;
t=t+n; *输出的t值确实为1+2+...+n;
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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