全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2399 3
2017-01-12
我有一个表,大概2000多万条数据,104个变量(week1 - week104) 。每行数据对应一个用户,每个变量是用户加入的第N个星期的销售额。

现在有个需求就是想要给每个用户算一条log curve并得到公式,我能想到的方法是取出一个用户的数据,进行转置。算出ln(1) 到 ln(104), 然后用log值跟销售增长率之间做regression.  但是现在用户太多了,一个一个转置并计算耗时太长,各位大神有没有什么好的办法可以实现的呢?

微信截图_20170112111935.png
二维码

扫码加我 拉你入群

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

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

全部回复
2017-1-12 19:31:21
我试了下,你这个计算量很大,所以我把do loop放大10。
复制代码


二维码

扫码加我 拉你入群

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

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

2017-1-22 04:42:14
zwnSAS121 发表于 2017-1-12 19:31
我试了下,你这个计算量很大,所以我把do loop放大10。
谢谢! 抱歉没注意到您的回帖。我已经找到方法解决这个问题了,就是在做transpose和regression的时候都加by member id,这样就可以了。我拿了100多万个member做sample,测试下来跑一遍在五分钟左右,因为是用的服务器跑的,会比自己电脑上的SAS快一点
二维码

扫码加我 拉你入群

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

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

2017-1-22 10:01:14
zwnSAS121 发表于 2017-1-12 19:31
我试了下,你这个计算量很大,所以我把do loop放大10。
你这是因为在第一次循环时候,各种变量还没有开始衍生就已经output了,所以出错。只需要将output语句放在整个loop的最后即可。另外arrya的定义建议放在loop外。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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