Top Secrecy
我的求职简历:生物统计师
其实这只是徒有虚名而已,真真进入公司之后,肯定需要从最基础的做起,跟着前辈一步一步的学习,前进……希望有机会进入公司,做自己喜欢做的。
这里的内容会越来越多的哦……
其它内容测试中……
SAS程序员面试遭遇……
作者:东海小龙 日期:2011-02-28
今天面试了两家公司,其中一家只有笔试其实。
第一家,出题很不按规则来,把我弄的很郁闷……其中一题我到现在还是没明白那个到底是什么目的。另外有一题我确认做错了。
data k;l="12345678";length l $ 20;run;问变量l的长度。一般我们做的时候肯定会先定义长度,但我没想到是前面的赋值已经定义长度后,后续的length是不能再设置变量长度了,会出现warning。另外有一题,我把sql生成宏变量没有好好深入理解,结果有点搞错了。
用sql生成宏变量,他原来测试的是可以用data步来完成,我写完之后觉得data不太繁琐了,又写了一个sql语句,目的是为了简化代码。可是由于那个不是很常用,记忆上不是很牢靠,就给记错了。
正确的答案应该是select count(gender),gender into :y1-:y2 from test;我把冒号加错地方了,而且这里两个宏变量之间是-连接,每个宏变量名前腰加冒号。失误啊。
第二家的笔试很注重表的输出,而且是用ods输出rtf。好久没那么做了,结果ods语句都写错了,我写成ods rtf output="filepath\filename"了,应该是file="..."。悲剧啊。而且最后一题我还答错了。而且时间比较紧,要写很多代码。哎……不说了。
继续好好努力!主要是学校已经开始办理派遣手续了,我却还没有单位下落,让我比较被动。
评价一下刚刚收到的怀炉…
作者:东海小龙 日期:2010-12-26
这几天过节,其实也没啥可以过的,孤苦伶仃,伶仃孤苦的……淘宝团购的零食也没到。
昨天在逛京东的时候看的了一个zippo的白金触媒怀炉,看起来不错,天也怪冷的,买一个吧。好贵啊,260rmb……上几天刚刚189刀烧了一个Kindle电子书阅读器,让我同学带来,还没到,可没那么多钱买着个玩意。不过可以起淘宝看看。在淘宝一查,哦,武汉就有一家,只卖48元,还送133ml的燃料,不错。还说是正品,接收专柜验货。好厉害啊。和京东的图片比照了一下,而且都一样。要不买一个玩玩吧,虽然在办公室有空调用不到,但寝室以及路上还是挺冷的。于是下单订了一个,又加一瓶zippo的煤油。
Hash在大容量记录快速查找中的应用
作者:东海小龙 日期:2010-12-18
上几天刚好在看SAS的Hash,没想到马上就用到了。昨天有一个学遗传方面的人来请教一个问题,要从几十万条记录的数据库中找出1000个人的所有亲代记录。
这几十万条记录包含三个变量:个人代码x,父亲代码f,母亲代码m。
他是他只会用SQL语句查找上一代的,而且因为数据库很大,所以查找起来很慢。
那是,几十万条记录用SQL来做速度是快不了,I/O速度跟不上,效率低,而且他得一代一代的查,直到找不到新的亲代为止,这个要循环多少次还是个未知数。
用Hash的话假设3个变量都是20个字节长度,那么一百万的记录量,占用内存空间应该在六七十兆左右,一般的机器都可以完成,这个可以大大提高搜索速度。
解决的方案定了,剩下的是算法问题了。不过这个不好叙述了,我手边也没有换框图的工具,sorry啦。
现在把代码贴出来吧,有需要的可以拿去用。
data Output;
length x $ 20 f $ 20 m $20;
array y(10000) $ 20. _temporary_;
i=1;
do until (eof);
set dbscan end=eof;*dbscan是要查找的人;
y(i)=x;
i+1;
end;
aitem=i-1;
移动硬盘盒的购买经历……
作者:东海小龙 日期:2010-12-13
求职历程……
作者:东海小龙 日期:2010-11-07
也谈360pkqq……
作者:东海小龙 日期:2010-11-06
SAS中宏变量在跨宏时的堆栈处理
作者:东海小龙 日期:2010-09-26
在宏程序运行过程中,往往会用到很多的宏变量,特别是关于循环的,而这些宏变量由于代码的书写习惯,往往会造成几层的宏无意间使用了同一个宏变量,而造成下一级宏对上一级宏变量的篡改而造成结果得错误。
效率评价2——大型数据集记录的修改与删除
作者:东海小龙 日期:2010-05-26
通常我们在整理数据集的时候用data步来计算、修改、更新数据。比如加个format、label、重命名变量名啊,因为data来的直观,用的最多也最熟,手到擒来,所以最受大家的欢迎。
但是如果应用在大的数据集时,会出现效率危机。之前我们也讲了一章关于如何高效修改数据集某些属性,详见http://www.happycoder.cn/article/48.htm 。
另一个更新数据集的方法是用sql的update语句。
Update table-name|sas/access-view|proc-sql-view <AS alias>
SET column=sql-expression <, ... column=sql-expression>
<SET column=sql-expression<, ... column=sql-expression>>
<Where sql-expression>;
如果要删除某些记录可以用sql的delete语句。
Delete FROM table-name|sas/access-view|proc-sql-view <AS alias> <Where sql-expression>;
以下我们通过一个例子来比较不同方法的效率。在这个例子中,用的的数据集是一个单病种的数据库,有19w6k条记录。
以下是更新一条记录的效率测试:
proc sql stimer;
update raw.dbz2_ set indays=24 where code='X15487501' and patientno='337832' and bzbm='008';
quit;
*执行时间3.39s(实际时间,下同);








