今天打開簡書,看到一條私信瘾婿。在這里說明一下,我不是每天都寫文章,也就不會每天都打開簡書或者公眾號憋他。所以一般都是要寫文章了才會看到消息了孩饼。而且現(xiàn)在也不想把私人聯(lián)系方式發(fā)出來了髓削,問的問題大同小異竹挡,都是對工作和行業(yè)的理解,每天工作挺煩的立膛,不想再添煩心事揪罕。有問題我會在文章里解答。
把他的問題分享給大家宝泵,也許不少人也有這個困惑好啰。
第一:sas證書我覺得考不考無所謂,對工作作用不大儿奶,面試的時候人家更看重的是你的經(jīng)驗和對CDISC標(biāo)準(zhǔn)的理解框往。關(guān)鍵是考一門要花幾千塊,不劃算闯捎。
第二:這行是不是很燒腦椰弊?只能說比那些互聯(lián)網(wǎng)工作(軟件開發(fā))好一些。燒腦剛開始確實會瓤鼻,尤其是學(xué)習(xí)SAS Base的時候秉版,對于剛開始學(xué)習(xí)SAS的同學(xué),有些東西確實不好學(xué)茬祷。但是我接觸過Java,python,相比它們我感覺SAS又是傻瓜式語言了清焕。
還有到后面學(xué)習(xí)SDTM,ADaM等祭犯,也有一點困難秸妥,但是經(jīng)驗都是犯錯和總結(jié)積累的,重要的是要有一顆主動學(xué)習(xí)的心沃粗。還有有時候我真的對這份工作厭煩粥惧,因為你得根據(jù)方案或者SPEC修改不斷修改SDTM,ADaM,TFL格式等陪每,不是說你寫完一遍QC完成了就OK了影晓,到后面得修改很多次。
我今天幫DM跑報告就鼓搗了快一天檩禾,痛苦挂签!因為程序一開始不是我寫的,是那個跑去上海的同事寫的盼产,所以有些邏輯我不太清楚饵婆,然后程序風(fēng)格不一樣,后面就是在他程序上修修改改戏售,導(dǎo)致程序很臃腫侨核,然后今天DM添加邏輯草穆,就得認(rèn)真去查找在哪修改,怎么修改................................................
好了搓译,進(jìn)入今天的主題,今天遇到一個小問題悲柱,突然不知道m(xù)in函數(shù)取最小值的時候會不會把空值包括(要求是取非空的最小值),太久不用竟然忘了些己,無語.
data test;
a=.;
b=1;
c=2;
d=12;
run;
data test2;
set test;
all=min(a,b,c,d);
run;
可以看到min函數(shù)是忽略空值的豌鸡。同理,man函數(shù)也是一樣的。
如果我想求a+b的值段标,有以下兩種方法
①:簡單的相加涯冠,但是會報錯
data test2;
set test;
ccall=a+b;
run;
因為有空值,所以SAS會報missing value的錯逼庞。
所以我們需要加一個判斷條件蛇更。
data test2;
set test;
if a^=. then ccall=a+b;
run;
但是這樣就會算不出值
有時候并不是我們想要的結(jié)果,我們想他即使是空值也輸出值赛糟,這時候就需要用到sun函數(shù)派任,sum是求和函數(shù)。
data test2;
set test;
ccall=sum(a,b);?/*括號里面是逗號*/
run;
完美輸出虑灰。大家尤其是在處理數(shù)字的時候吨瞎,一定要注意不要報missing?value的錯
sum是橫向求和,那如果我想縱向求和怎么辦穆咐?
就得用到proc sql了颤诀,
proc sql的用法我以后會講。這些做法都挺常用的对湃。
再講一些算術(shù)表達(dá)式(不知道是不是叫這個)的英文表達(dá)方法崖叫。
>?:? ?gt?(greater?than的縮寫)
< :?lt??(less?than的縮寫)
=?:? ?eq?(equal)
>=:?ge
<=:? ?le
^=?或者?~=??或者?<>?或者ne?:不等于
你用數(shù)學(xué)表達(dá)式或者英文寫法都可以的
data test;
a=.;
b=2;
c=2;
d=12;
run;
①:大于等于
data test5;
set test;
if b ge c then cc="Y";
run;
②:不等于
data test5;
set test;
if b^=. then cc="Y";? /*注意b是數(shù)值性,不能寫成^=""?*/
run;
就寫這么多吧拍柒,想休息一下心傀。