SAS導(dǎo)出數(shù)據(jù)集到excel(第一章)

如果只是做我們SAS程序員的工作,很少用到導(dǎo)出數(shù)據(jù)集到excel的功能(主程序員不一定),但是如果幫DM導(dǎo)出報(bào)告的話,就經(jīng)常用,而且還會(huì)遇到很多問(wèn)題,以后慢慢講,這就是我為什么用(第一章)這個(gè)標(biāo)題。

你們說(shuō)幫DM跑報(bào)告,可能比較疑惑,我找到一則SAS程序員招聘要求,紅框里面要求的就是我們要做的??吹竭@則招聘啟示,吸引我的還有2年經(jīng)驗(yàn),上海才1-2萬(wàn),一般來(lái)說(shuō)貼出1-2萬(wàn),給出的都是最低的,也就是1萬(wàn),嗯~~不予置評(píng)。

今天用標(biāo)準(zhǔn)版的SAS,也就是下圖中的樣子,不太好用,寫程序沒(méi)有提示,輸出不了數(shù)據(jù)集,只能通過(guò)proc print查看數(shù)據(jù)集的樣子。廢話不多說(shuō),下面就來(lái)根據(jù)不同需求輸出excel。

原數(shù)據(jù):我直接在excel輸入數(shù)據(jù),然后proc import導(dǎo)入。

1:根據(jù)同一變量的不同值輸出多張sheet.如:根據(jù)gender輸出男的一個(gè)sheet,女的一個(gè)sheet。

以前的話我可能會(huì)輸出兩個(gè)數(shù)據(jù)集,然后再導(dǎo)出到excel,有點(diǎn)麻煩,但是直接用by選項(xiàng)就ok了。而且我還犯了一個(gè)錯(cuò)誤,就是在用by選項(xiàng)前沒(méi)有排序!導(dǎo)致只輸出一條,我還在那懷疑為什么?

排序后輸出

可以看到數(shù)據(jù)根據(jù)性別分成兩個(gè)sheet輸出。

但是我們發(fā)現(xiàn)sheetname好像并不是我們想要的樣子,比如說(shuō)我們想以F,M分別作為sheetname,這怎么弄呢?我們可以在proc report前面用上options選項(xiàng)

注意options(sheet_name="#byval1") ;

"#byval1"? 這個(gè)鬼東西代表你用by后面的第一個(gè)排序變量作為sheetname,而且輸出文件路徑后面沒(méi)有分號(hào)(;),要不然options不起作用。

那我們來(lái)試試多加一個(gè)排序變量是什么樣。

我在原文件中添加一個(gè)rich變量:

在程序中添加排序變量rich,輸出如下:

發(fā)現(xiàn)數(shù)據(jù)集根據(jù)性別,根據(jù)rich分成四個(gè)sheet了,有意思。F2?sheet是性別為F并且rich為Y的集合。同理M,M2........

這些方法給我了一個(gè)思路,下圖是我經(jīng)手的SDV,目前的做法是分別輸出多個(gè)數(shù)據(jù)集到庫(kù)中,最后再用ODS選項(xiàng)輸出報(bào)表,但是現(xiàn)在我在輸出報(bào)告的時(shí)候,我可以把所有需要的數(shù)據(jù)集set到一起,然后添加一個(gè)標(biāo)識(shí)符變量.

也就是我可以根據(jù)這個(gè)變量,用上面的方法輸出報(bào)表。比如"sdv列表 標(biāo)識(shí)符變量FLAG=1";"缺失頁(yè)?標(biāo)識(shí)符變量FLAG=2".....只要最后在proc report的時(shí)候?by flag就好了。有空去試試。

proc report還有很多功能,再加上ods,能夠?qū)崿F(xiàn)各種花里胡哨的要求,我十篇文章都不一定寫完,只講我遇到的吧。其實(shí)在幫DM導(dǎo)出報(bào)告的時(shí)候,會(huì)遇到很多問(wèn)題。

其中的一個(gè)問(wèn)題就是SAS總是報(bào)內(nèi)存不足的錯(cuò)誤,因?yàn)橛袝r(shí)候DM那邊會(huì)發(fā)過(guò)來(lái)100多萬(wàn)條數(shù)據(jù),這時(shí)候往往SAS卡死,報(bào)告還輸出不出來(lái)。但是我已經(jīng)找到了解決方法,方便快捷。嘻嘻嘻。

---------------------------------------------------------------

在寫文章的時(shí)候,我就在想現(xiàn)在的你在干嘛呢?我現(xiàn)在的關(guān)注只有30多個(gè),但是我并不在意訂閱數(shù),因?yàn)槲覍懳恼碌哪康闹皇庆柟套约旱闹R(shí),而且關(guān)于SAS程序員的公眾號(hào)關(guān)注一般都不多,可能從業(yè)人員少吧,但是DM和CRC的就比較多了。

現(xiàn)在的我一邊聽(tīng)著薛之謙的《認(rèn)真的雪》,只是今天突然發(fā)現(xiàn)薛之謙好像突然消失了,18年還是什么時(shí)候很火的,他有幾首歌挺好聽(tīng)的。

很想給自己買一個(gè)1000多塊的頭戴耳機(jī),到晚上的時(shí)候,聽(tīng)著音樂(lè),慢慢地默默地享受孤獨(dú),但是舍不得。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容