全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1688 5
2011-10-11
data步的hash对象能不能实现跨data步使用?
data a;
declare hash a();
..........
run;

能不能直接在b中使用?
data b;
..............
a.find();
............
run;

——————————————————————————————
如果不能,想问一下,如果有一个表有百万条记录,做成hash表会不会很慢?如果多处要用到,该怎么做?


不胜感谢了!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-10-12 01:08:31
要在同一个data步进行,可以用 do end; 来同时实现多个表的查询。
上百万的hash表还好吧。之前尝试过,速度跟具体查询方法和算法是有关系的。
二维码

扫码加我 拉你入群

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

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

2011-10-12 09:21:17
非常感谢楼上的!
看来只有用do end 了!
二维码

扫码加我 拉你入群

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

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

2011-10-12 18:12:43
很好的问题,hash是可以解决你的问题
二维码

扫码加我 拉你入群

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

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

2011-10-13 09:08:13
爱萌 发表于 2011-10-12 18:12
很好的问题,hash是可以解决你的问题
版主好,
不知道有没有好方法解决这个问题?
二维码

扫码加我 拉你入群

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

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

2011-10-14 21:20:03
可以把hash对象用output方法输出到data数据集,h.output(dataset:'data1'),并在下次的DATA步中再读入,
hash对象是驻足于内存中的,因而尽量为其字段设置刚好满足的字段长度,比如数值变量假如都很小的话,用3.等已足够,否则默认是8.的。字符长度也不要声明过长。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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