AI選的函數(shù)組合也挺有效【教ChatGPT學SAS 5填補日期缺失值】

之前讓ChatGPT學習了生成測試數(shù)據(jù)集,連續(xù)型變量描述統(tǒng)計和組間比較,分類變量描述統(tǒng)計??ǚ綑z驗和fisher精確檢驗代碼都非常簡單,沒有單獨做分享。這些需求的特點是,實現(xiàn)的方法比較明確單一,相對固定,歷史上的代碼比較成熟。


要想實現(xiàn)將日期變量填補這一個需求。是需要進行邏輯判斷的,能實現(xiàn)這個需求的代碼也比較多樣,需要自己進行搭配和組合。


首先將自然語言轉換為編程邏輯,然后再從SAS的語法中選擇合適的函數(shù)和語句,組合在一起來實現(xiàn)需求,對于初學者還是有一定難度的。特別是,如果不了解其中有的函數(shù),就需要寫更長的代碼來替代。



首先把日期往前填補。如果日缺失,則填補為1日;如果月缺失,則填補為1月1日。

這里AI給出了一段代碼,使用了MISSING, INDEX, SUBSTR, CATS INPUT函數(shù)。整體邏輯是不錯,選用的SAS函數(shù)不算最簡化的,但也能滿足需求。在語法上,沒有意識到YYMMDD10.格式的值是類似于”YYYY-MM-DD”這樣的。需要將“01“和”0101“更新為”-01“和”-01-01“,整段代碼就可以正常運行了。



然后把日期往后填補,如果日缺失,則填補為當月最后一天;如果月和日都缺失,則填補為當年最后一天。這比往前填補,難度更大。因為每個月的最后一天是不固定的。不能簡單的拼接。

這里她想到使用INTNX來實現(xiàn)這個需求。但是語法并沒有寫對。她這里寫出來的是,下一個月的最后一天,并且減1天。另外,這段代碼的先后順序也有問題,當變量DATE缺失時,本身缺失值無法在INTNX函數(shù)中運算。所以需要先對DATE變量進行一個填充。


這里,她對代碼進行了簡化。但是核心的需求還是沒有實現(xiàn)。需要先對變量進行填補,然后再取當月或當年最后一天。



又跟AI扯了一會關于INTNX函數(shù)的應用。



讓我們來看最終成果吧。

這里AI吸納了我給他的代碼,使用了LENGTH, INPUT, INTNX, STRIP, “||”等函數(shù),完美地將日期填補為當月或當年最后一天。


整個代碼從函數(shù)的選擇,到語句的使用,到排版和縮進,到最后考慮了數(shù)據(jù)不滿足前三種情況時預警,都很漂亮,沒有什么可以挑剔的。


本文章首發(fā)于公眾號【SAS編程未來】

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容