Sas应用之宏变量%eval

Sas应用之宏变量%eval
定义如下:The %EVAL function evaluates integer arithmetic or logical expressions. %EVAL operates by converting its argument from a character value to a numeric or logical expression. Then, it performs the evaluation. Finally, %EVAL converts the result back to a character value and returns that value.。
一、程序思路 做一个简单的例子,实现1到100相加的结果,通过添加和去掉%eval掌握%eval的用法。
二、程序如下:
%macro a;
%let sum=0;
%do i=1 %to 100 %by 1;
%let sum=&sum+&i;
%put &sum.;
%end;
%mend;
%a;

在该宏中,实现从1到100的相加,每次循环都put出sum的结果;本次结果如下:

Paste_Image.png

没有实现数值计算,而是以字符的形式做了输出;为什么会是这样的呢?原因在于sum=&sum+&i这里没有使用%eval宏函数进行计算。添加后程序为:
%macro a;
%let sum=0;
%do i=1 %to 100 %by 1;
%let sum=%eval(&sum+&i);
%put &sum.;
%end;
%mend;
%a;

结果如下:
1
3
6
10
15
21
28
36
45
55
66
78
91
105
120
136
153
171
190
210
231
253
276
300
325
351
378
406
435
465
496
528
561
595
630
666
703
741
780
820
861
903
946
990
1035
1081
1128
1176
1225
1275
1326
1378
1431
1485
1540
1596
1653
1711
1770
1830
1891
1953
2016
2080
2145
2211
2278
2346
2415
2485
2556
2628
2701
2775
2850
2926
3003
3081
3160
3240
3321
3403
3486
3570
3655
3741
3828
3916
4005
4095
4186
4278
4371
4465
4560
4656
4753
4851
4950
5050

可关注微信号:SAS应用分析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 今天的晨读材料来自《你的降落伞是什么颜色》这本书,该书被誉为全球最畅销的求职跳槽指南,如果你对目前的岗位不满意,或...
    钱生钱落地实操阅读 1,697评论 2 3
  • 室友来北京,终于可有落脚的地方了。来北京半年,没有一个朋友是有多无趣,以后我也可以和小颖子到处走走了 真好, 今天...
    权萌萌Stefanie阅读 1,472评论 0 0

友情链接更多精彩内容