请选择 进入手机版 | 继续访问电脑版
楼主: Adrian2Hope
50820 138

[原创博文] 我是一名SAS程序员   [推广有奖]

  • 0关注
  • 47粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
4.3727
学术水平
11 点
热心指数
17 点
信用等级
8 点
经验
1652 点
帖子
87
精华
0
在线时间
205 小时
注册时间
2016-7-17
最后登录
2022-5-8

Adrian2Hope 发表于 2016-11-29 14:06:56 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题。

我想如果有时间了,我会不定时地记录下我本人在这个行业的一些工作情况。或许有的时候就像一篇日记那样随便、无聊。说白了,就是想聊聊天,就在这个平台上。如果没有人听,那我自话自说,如果有人听,那大家都一起聊聊。

二维码

扫码加我 拉你入群

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

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

关键词:SAS程序员 sas程序 程序员 聊聊天 医药行业 程序员 日记 SAS 统计

回帖推荐

haierwing 发表于4楼  查看完整内容

好的 洗耳恭听
已有 2 人评分热心指数 收起 理由
marakesh + 5 精彩帖子
eijuhz + 3 精彩帖子

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

本帖被以下文库推荐

大家好,我是团长。
支持。
借个宝地问下,怎么能找到SAS实习?有什么要求?

使用道具

梅鹏科 在职认证  学生认证  发表于 2016-11-30 08:28:47 来自手机 |显示全部楼层 |坛友微信交流群
Adrian2Hope 发表于 2016-11-29 14:06
如题。

我想如果有时间了,我会不定时地记录下我本人在这个行业的一些工作情况。或许有的时候就像一篇日 ...
你说吧,我们听着

使用道具

haierwing 发表于 2016-11-30 09:15:15 |显示全部楼层 |坛友微信交流群
好的 洗耳恭听

使用道具

Hyquid5 发表于 2016-11-30 14:36:35 来自手机 |显示全部楼层 |坛友微信交流群
支持+1
作为一个尚在找工作的新人来说,这种day-to-day的设定最喜闻乐见了!

使用道具

Adrian2Hope 发表于 2016-11-30 14:39:06 |显示全部楼层 |坛友微信交流群
没有想到,竟然有朋友回复了,首先感谢上面几位朋友的回复!
我们有的时候很忙,但也不排除会有闲的时候。但人就是这样,一闲下来了,反而不知道该干些什么,觉得时间过的比较漫长。其实,在这个时候,或许更应该冷静下来,毕竟我们有很东西需要学习,需要总结。
首先声明下,我是个程序员,但,是医药行业的!我是一名码农,但我不是IT男哦。好了,废话少说,进正题!

使用道具

Adrian2Hope 发表于 2016-11-30 15:31:07 |显示全部楼层 |坛友微信交流群

我们在做table的时候,尤其是lab的descriptive summary。我们通过proc得到一些常见统计量,比如 n, mean, std, median, min, max。一般sap当中会规定小数点位数的保留方法。比如以raw data的最大小数位数为基准,在此基础上, mean会多一位,std会多两位,median, min, max会和raw data的小数位数一样,如果raw data的最大小数位数超过3位的,当2位小数(这样规定的不多)。正常情况下,那我们可以直接写成put(var,8.0), put(var,8.1)...之类的。但像lab这样的,parameter很多,不清楚哪一个parameter的test result value "aval"最大小数到底是多少位,那只能智能化处理了。但一种方法不推荐,甚至说是不允许的。那就是你先写个小程序得出每个parameter maximum decimal,然后这样写: if paramn in (1 2 3) then put...; else if paramn in (4 5 6) then put...; 这样写的话,有被认为是hard-coding之嫌!而这在临床试验的编程工作中,是坚决不允许的,除非客户要求,或者更高层次的批准。
所以,做法肯定是根据paramater来决定它的统计值的输出格式了。当然,不同的人会有不同的编程方法。有的喜欢用宏,先做出宏变量值,在derive的时候用do循环。有的觉得可以不用,直接在data步里面就可以搞定。
这里说句题外话,并不是只要用了宏就觉得逼格很高,甚至宏套宏的,来个一环又一环的。这样并不好,这以后再说。
说了这么多废话,只想引出一个比较重要的函数,那就是PUTN。这个函数的好处是后面的format可以用个字符型的变量表示,这一点太好了!!!网上找了个地址:http://bama.ua.edu/sasv8/sclr/z0320184.htm。感兴趣的朋友可以去看下。
其实,我非常想把自己的code放上来,毕竟变量啊,写法什么的啊,都是follow一些标准的,而且这样多省事啊!可是公司是零容忍类似这样泄露知识产权的行为,公司一波接一波的sop让我们觉得,公司很大很正规,我还是规矩点好。在不确定可不可以这样做的时候,我还是不去尝试。另外,还有一个关键的原因,这个论坛里面高手如云,我不敢放自己的code。
好了,我来说下我的做法。
1. 通过一些类似lengthn, scan之类函数和sort过程,得到每个parameter maximum decimal。然后可以生成三个字符型变量dec0, dec1, dec2。像dec1 = strip(put(8.0+0.1*(maxdec+1),best.))...;
2. 用sql or merge连接。
3. msd=putn(var_mean,dec1) || " (" || strip(putn(var_stddev,dec2)) || ")"...;
这样下来之后,各个统计量就会根据不同的lab test name来选择小数的保留位数了。
tips:
1). 上面用的最大长度是8位,对有些很大的值可能会truncated, 所以,可以用round来处理。
2). 如果变量比较多,可以考虑用macro来简化每个variable derivation。
3). 像这样处理小数位数的,sas programmer是经常碰到的。写一套属于自己的code,以不变应万变最好。
...
over
已有 1 人评分经验 收起 理由
eijuhz + 40 精彩帖子

总评分: 经验 + 40   查看全部评分

使用道具

Adrian2Hope 发表于 2016-11-30 15:34:05 |显示全部楼层 |坛友微信交流群
回复:找sas实习很容易呀。我当年考完那个base,在北京还在念书的时候就接到很多cro的实习职位。你要出去找撒(北上),在家里呆总不行呀。

使用道具

hyquid 发表于 2016-12-3 11:34:56 |显示全部楼层 |坛友微信交流群
Adrian2Hope 发表于 2016-11-30 15:31
我们在做table的时候,尤其是lab的descriptive summary。我们通过proc得到一些常见统计量,比如 n, mean, ...
谢谢分享!
能讲讲CRO的SAS programmer职位面试时会被问道的问题么?job description中说最好有CDISC STDM conversion的经验,不过我从来都没碰到过proc cdisc。我只是考了个adv的证,非统计专业,也没实际操作、工作经验。关于proc cdisc我只是看了一下online SAS documentation,但还是觉得云里雾里。不知能否讲一下关于这个proc cdisc到底要了解到哪种程度才能过面试?谢谢!

使用道具

Adrian2Hope 发表于 2016-12-3 19:53:32 |显示全部楼层 |坛友微信交流群
回复:hyquid
这位朋友,你好!JD里面说的SDTM是属于CDISC里面的内容,另外,它还有ADaM等等。关于CDISC,内容极其丰富!另外,对于只做global项目的sas programmer来说,对CDISC里面的各项内容足够了解那是必须的!local就不一定了。所以,你说的proc cdisc,可能是误读了。
关于面试,首先要看面试者的条件和经验,针对不同的情况,会有不同的面试要求。
具体到你的话,非统计,没经验,这很正常,完全没有任何问题。只是在面试的时候实话实话就足够了。他们肯定会问你做过什么,可能会有考试(上机,做题)。不会可以学啊,这有什么可担心的呢?
so, just go for it without hesitate!
另外,有朋友加我好友,我这边权限比较低,加不了。但这不妨碍大家在这里交流讨论哈。欢迎大家没事就进来坐坐!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-28 17:07