楼主: complicated
13164 11

[学习分享] 新手说说SAS和R [推广有奖]

  • 3关注
  • 18粉丝

已卖:10份资源

副教授

65%

还不是VIP/贵宾

-

威望
0
论坛币
6463 个
通用积分
3868.8149
学术水平
88 点
热心指数
86 点
信用等级
58 点
经验
21958 点
帖子
506
精华
0
在线时间
1425 小时
注册时间
2007-6-16
最后登录
2024-4-20

楼主
complicated 在职认证  发表于 2013-1-30 13:41:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
念书的时候学过一点SAS,最近密集的应用SAS半年,然后跑去听R的课程
感觉到R确实是灵活,一个好处是:
前面一行指令计算得到的结果可以轻易的被后一行指令调用,
因为它的输入和输出管理的很好,算出来的东西都存在dataframe,向量或者表里,再调用就方便了
而SAS我觉得这方面体现的不太好,
比如,我怎么找到一组数字的最大值,然后把所有数字都除以这个最大值?
R实现
x<-c(1,2,3,4,5);
y<-max(x);
(z<-x/y);
SAS实现
……先跟我说说一组数的最大值怎么求

二维码

扫码加我 拉你入群

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

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

关键词:SAS和R Dataframe Frame 输入和输出 Data 最大值

已有 2 人评分论坛币 学术水平 热心指数 收起 理由
Imasasor + 60 + 1 + 1 观点有启发
资料狂人 + 1 + 1 鼓励积极发帖讨论

总评分: 论坛币 + 60  学术水平 + 2  热心指数 + 2   查看全部评分

本帖被以下文库推荐

密码被盗??

沙发
ziyenano 发表于 2013-1-30 13:51:31
/*最近这个好像争议又热起来了;
R,matlab都是交互式的语言的,
很方便将前面的结果放在后面的应用中*/

/*SAS稍稍有些烦,大多还是依靠宏变量来传递*/

data ex;
do x=1 to 5;
output;
end;
run;

solution1:

proc means data=ex;
var x;
output out=res max=max_x;/*ods语句也可以*/
run;
data _null_;
set res;
if _n_=1 then call symputx('max',max_x);
run;
%put &max;

solution2:

proc sql;
select max(x) into:max from ex;
quit;
%put &max;

/*但是别忘了,SAS也有一门交互式的语言iml*/
solution3:;
proc iml;
a=1:5;
max=a[<>];
print max;
quit;
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
complicated + 5 + 5 + 5 MAX会了,宏变量会用了,还了解了IML,呵呵.
webgu + 1 + 1 + 1 呵呵,IML.

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

藤椅
ihust 发表于 2013-1-30 14:43:54
ziyenano 发表于 2013-1-30 13:51
/*最近这个好像争议又热起来了;
R,matlab都是交互式的语言的,
很方便将前面的结果放在后面的应用中*/
...
iml搞起,讨论iml的好像比较少啊

板凳
zhangzachary 发表于 2013-1-30 16:02:01
IML可以直接调用R。
IML可以用来计算矩阵。
要比敲代码行数和字数,SAS是比不过R,但是如果需要用于自动化运行的代码,R还是得写成函数形式,然后调用,字数行数也不少,其实一样的,只是取决于想用来做什么。
比如计算1+1,R和Matlab都比SAS好用,当然按计算器更方便,用手指比按计算器还快,嗯。。。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
ziyenano + 1 + 1 + 1 是这么个道理

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

报纸
complicated 在职认证  发表于 2013-1-30 16:11:06
ziyenano 发表于 2013-1-30 13:51
/*最近这个好像争议又热起来了;
R,matlab都是交互式的语言的,
很方便将前面的结果放在后面的应用中*/
...
哈哈 多谢多谢~~~~~
我是非常想看到这段代码的
密码被盗??

地板
complicated 在职认证  发表于 2013-1-30 16:20:12
zhangzachary 发表于 2013-1-30 16:02
IML可以直接调用R。
IML可以用来计算矩阵。
要比敲代码行数和字数,SAS是比不过R,但是如果需要用于自动化 ...
不明觉厉!学习了
关于自动化,能再介绍一点吗?
是说如果想实现复杂的功能,R代码需要编译打包之类的吗?不像SAS,可以直接运行?
谢谢~
密码被盗??

7
zhangzachary 发表于 2013-1-30 16:48:18
complicated 发表于 2013-1-30 16:20
不明觉厉!学习了
关于自动化,能再介绍一点吗?
是说如果想实现复杂的功能,R代码需要编译打包之类的吗 ...
详细的我也不了解,希望我以后有机会能了解吧。。。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

8
complicated 在职认证  发表于 2013-1-30 16:50:50
zhangzachary 发表于 2013-1-30 16:48
详细的我也不了解,希望我以后有机会能了解吧。。。
嗯,,,很关心这方面问题,希望有机会的话多指教~
密码被盗??

9
zhou.wen 发表于 2013-1-31 12:16:18
你用有1000万条以上的数据求最大值,用R算一下,你觉得你电脑扛得住么
但是SAS很快就算好了,SAS的data步是逐行读取数据的,牺牲了代码的灵活性,换取的是处理大型数据的能力
在SAS里面,IML的效率比Base里要低很多的
关于自动化,我觉得SAS做的一般吧(或者我对这方面理解不深),如果真的要封装的话,建议还是用C#,java等调用SAS会方便很多
Practice Is The Best Teacher!

10
zhou.wen 发表于 2013-1-31 12:19:09
不过R里面很多包很好用,的确开源是R的优势
SAS的IML studio可以调用R
@zhangzachary 说的精辟“用手指比按计算器还快”
用什么工具,取决于做什么
Practice Is The Best Teacher!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 13:19