楼主: 040108020007
1781 5

问个sas代码效率的问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

讲师

12%

还不是VIP/贵宾

-

威望
0
论坛币
3437 个
通用积分
2.2500
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
7488 点
帖子
210
精华
0
在线时间
603 小时
注册时间
2007-6-25
最后登录
2025-12-29

楼主
040108020007 发表于 2011-3-7 09:25:14 |AI写论文
50论坛币
我做一个比较大的数据集,从一个字段中提取关键字,如果有该关键字命名一个新变量,赋值为1;我是这样写的 if index(x,"xxxx")>0  and index(y,"yyyy")>0 then flag=1;
因为关键字特别多,就这样写了满满一页,结果昨天运行了一下,7个小时才跑出一个文件;
我觉得是代码效率太低了,哪位高手有好点的方法,赐教一下,谢谢!

关键词:sas代码 Index Flag Then 关键字 效率 SAS 代码

沙发
hssnow 发表于 2011-3-7 10:06:12
菜鸟飞过,抛块砖头:
用where代替if
find()或count()函数也可用来判断一个变量中是否含有某一关键字,效率方面不是很清楚,楼主可以测试下
My Blog: http:/hssnow.name/
宁静致远

藤椅
honghejing 发表于 2011-3-7 11:40:04
用SQL做效率会高一些

板凳
040108020007 发表于 2011-3-7 12:10:28
但我听说好像sql效率很低呢,主要是条件多,主数据集大 3# honghejing

报纸
ntsean 发表于 2011-3-7 12:32:21
试试
if index(x,"xxx")=0 then flag=0
  else if...
       else if.....

这样,如果前面if条件满足,后面就不执行了,可以省下一点资源

地板
ntsean 发表于 2011-3-7 12:35:11
有本书叫 SAS adv prep guide 我前面分享了,里面有很多提高编程效率的技巧,你可以看看
已有 2 人评分热心指数 收起 理由
peijiamei + 1 好的意见建议
040108020007 + 1 谢谢!

总评分: 热心指数 + 2   查看全部评分

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

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