楼主: yukai08008
1233 3

[学习分享] 再见SAS , Hello R_Andy的原创帖22 [推广有奖]

  • 2关注
  • 17粉丝

已卖:19份资源

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
2176 个
通用积分
3.0600
学术水平
10 点
热心指数
7 点
信用等级
7 点
经验
5915 点
帖子
120
精华
0
在线时间
556 小时
注册时间
2012-11-28
最后登录
2022-4-11

楼主
yukai08008 在职认证  发表于 2016-8-5 22:33:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
再见,真的是呆会再见面的意思 : )
近期因为工作的关系,要开始用R了,只好放下小小的执着,放下SAS拿起R,写这篇文章缅怀一下这份执着。
我从2012年开始研究数据分析,因为SAS看起来高大上,入门就决定选SAS。后来觉得SAS实在是很对我的胃口(简单,高效,可靠),所以就一直在用。我用SAS大概经过两个阶段。
1.0阶段_爬行期:这个时候大多数就是在使用SAS的数据步和过程步,总之就是在一个步一个步的写,碰到复杂一些的任务就写很多很多的程序,然后串起来执行。(后来用EG的时候做这个很方便)。后来慢慢尝试了sas的很多偏门功能,比如发邮件,web数据抓取,文本分析,iml矩阵运算等。
2.0阶段_行走期:用sas的宏编写复杂的控制和算法。到了这里我觉得SAS像是一门完整的语言了,虽然数据结构很简单,变量的控制也比较简单,但是已经可以做很多事情了。以下是一些总结,供参考:
从存储、控制、计算三个角度来看。
在数据步sas只提供了数据集(总之最后都是表)这种结构,到宏编程的时候提供了局部宏变量和全部宏变量,通过宏变量的作用域自然的把宏变量分成了控制变量(在全局作用)和计算变量(局部宏中作用)。通过&令牌的规则还可以创建宏变量数组。
(这里多嘴一句,早期宏变量的文本替代功能到最后实现的多种功能,是不是一把很锋利的奥卡姆剃刀?)
从宏的角度上来看,data步是一个宏,proc步也是一个宏,自己用宏编写的函数或者过程也是一个宏,把宏看成一个最小的单元,那么结论就是只有宏才能调用宏。根据功能分化,可以是负责控制进程的宏,可以是负责计算某个值的宏,可以是执行某个短过程的宏...
存储:临时数据集,永久数据集,宏变量(当然还有矩阵)
控制:宏变量
计算:过程步,ODS结果,个人定制宏(相当于函数)
总之,因为机制很简单,所以写的时候要多花点心思。
以一个算法为例:
1、待分析数据以数据集的形式存放
2、通过数据字典在过程中读取数据集的属性
3、建立对应的逻辑库存放数据集
4、建立主迭代表,控制迭代的进行以及保存重要参数
5、在主宏中设定迭代上限,并设定对主迭代表的更新

R的话看起来更灵活一些,撸一遍再来心得。以后就是R的日子了...
二维码

扫码加我 拉你入群

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

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

关键词:hello Andy data步 奥卡姆剃刀 sas的 文章 程序

沙发
crackman 发表于 2016-8-7 22:56:56
看来对SAS使用很有体会

藤椅
yukai08008 在职认证  发表于 2016-8-7 23:12:52
crackman 发表于 2016-8-7 22:56
看来对SAS使用很有体会
sas是原配

板凳
yukai08008 在职认证  发表于 2016-8-7 23:13:35
crackman 发表于 2016-8-7 22:56
看来对SAS使用很有体会
刚学sas的时候还看了你的很多帖子,谢谢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 10:38