如何利用SAS的陣列(array)擷取疾病診斷碼】 健保資料分析時,常會在資料處理階段,遇到針對同性質的變項做相同的指令, ... if substr(icd9cm_1,1,3)='250' then dm=1; ... <看更多>
「sas substr用法」的推薦目錄:
- 關於sas substr用法 在 Re: [問題] SAS 資料處理- 看板Statistics - 批踢踢實業坊 的評價
- 關於sas substr用法 在 以斯帖統計- 【如何利用SAS的陣列(array)擷取疾病診斷碼】 的評價
- 關於sas substr用法 在 Sophie老師篇2】 #SAS #array 的應用當您在分析#健保資料庫 ... 的評價
- 關於sas substr用法 在 oracle substr中文2023-精選在Instagram/IG照片/Dcard上的 ... 的評價
- 關於sas substr用法 在 SAS/beginner at master · xieshaopeng/SAS - GitHub 的評價
sas substr用法 在 Sophie老師篇2】 #SAS #array 的應用當您在分析#健保資料庫 ... 的推薦與評價

影片中介紹 SAS 的#array 指令的操作,當您知道如何使用這指令,將更有效率地 ... substr (icd9_2,1,3)='250' | substr (icd9_3,1,3)='250' then dm=1; ... ... <看更多>
sas substr用法 在 oracle substr中文2023-精選在Instagram/IG照片/Dcard上的 ... 的推薦與評價
Oracle 的substr函数简单用法substr(字符串,截取开始位置,截取长度) //返回截取的 ... Clinical SAS Programmer (Data Management) - LinkedIn. ... <看更多>
sas substr用法 在 SAS/beginner at master · xieshaopeng/SAS - GitHub 的推薦與評價
SAS cod. Contribute to xieshaopeng/SAS development by creating an account on ... 移)后取数据,这个很有用,去掉了ip地址后的--符号;其实列指针还有两种用法。 ... <看更多>
sas substr用法 在 Re: [問題] SAS 資料處理- 看板Statistics - 批踢踢實業坊 的推薦與評價
經驗分享,有誤或有更簡潔的用法請指正
※ 引述《summerslam (BB)》之銘言:
: data:
: date ACC bs vol time
: 20010101 12 b 5 10:16:48.760000
: 20010107 12 s 1 12:00:05.230000
: 20010101 15 b 4 10:16:48.760000
: 20010107 15 s 1 12:00:05.230000
: 20010107 15 s 1 12:03:15.150000
: 20020209 23 b 3
: 20030205 37 b 5 10:25:25.250000
: 20030704 37 s 3 11:02:15.230000
: 想問的是 (1)如果中間有資料時間為空白(不是 '.'),要如何刪除?
: (2)只想抓出03年的資料
: (3)想要計算淨數量變化 也就是如果BS=B 則VOL為正的
: 若BS為S,則VOL為負值,然後加總數量,以ACC來分別計算
: (3)想要的結果為:
: date ACC bs vol time NETVOL ACQ
: 20010101 12 b 5 10:16:48.760000 5 5
: 20010107 12 s 1 12:00:05.230000 -1 4
: 20010101 15 b 4 10:16:48.760000 4 4
: 20010107 15 s 1 12:00:05.230000 -1 3
: 20010107 15 s 1 12:03:15.150000 -1 2
: 20030205 37 b 5 10:25:25.250000 5 5
: 20030704 37 s 3 11:02:15.230000 -3 2
: [程式範例]:
: (1)我的指令為:
: data ata.test;
: set ata.data;
: if time=. then delete;
: run;
time屬性是文字吧? 「.」是數值missing的用法
IF time='' THEN DELETE;
中間不用空白
: (2)指令為
: data ata.test;
: set ata.data;
: where date contains '2003';
: run;
DATA ata.test;
SET ata.data;
IF SUBSTR(date,1,4)='2003';
RUN;
SUBSTR: 取date變項第一位到第四位的內容
: (3)計算NETVOL指令為
: 計算ACQ指令為
: data ata.test;
: set ata.data ;
: RETAIN ACQ 0;
: ACQ=ACQ + vol;
: if acc^=lag(acc) then ACQ=vol;
: run;(這段是看板上學的)
RETAIN的話則是每次讀進一筆觀察值的時候那個變項值會是上一筆觀察值的值
而且看你說想要的狀況跟ACC好像沒有關係?
看你想要結果的意思是要負的才減去,正的就保留?
DATA ata.test;
SET ata.test;
IF bs='b' THEN ACQ=vol;
ELSE IF bs='s' THEN ACQ+(-vol);
RUN;
用的是 https://0rz.tw/9Ya7P SUM statement
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.71.94.31
抱歉我現在仔細看才看到你有推說要以帳號分
所以以帳號分,帳號裡的b就要加,s就要減
PROC SORT DATA=ata.test; BY acc date;
RUN;
DATA ata.test;
SET ata.test;
BY acc;
IF first.acc THEN ACQ=0;
acq+netvol;
RUN;
這樣看看
※ 編輯: stvene 來自: 114.32.31.217 (03/03 02:13)
... <看更多>