作者yonny (悠逆)
看板Statistics
標題[程式] SAS選擇最近的值後轉置
時間Tue Mar 22 22:57:42 2016
[軟體程式類別]: SAS (R也可以 但是我跟R比較不熟)
[程式問題]: 資料處理
[軟體熟悉度]:熟悉
[問題敘述]:
我的資料大概長像這樣
No是每次檢驗的流水號 ID相同是同一個人
GOT和GPT是在不同時間點做的檢驗數值
但不是每個時間點 都有兩個檢查都做
而且不同人做檢查的時間點也都不相同
No ID Month GOT GPT
1 1 0.2 41 34
2 1 2.8 42 .
3 1 3.5 43 36
4 1 3.7 44 37
5 1 4.9 45 38
6 1 5.5 51 39
7 1 5.7 52 40
8 1 6.0 53 .
9 1 6.2 54 .
10 2 0.9 20 21
11 2 4.0 22 .
12 2 4.1 24 25
13 2 5.7 . 36
14 2 6.0 30 .
以下是我期望的資料型態
ID GOT_0M GOT_3M GOT_6M GPT_0M GPT_3M GPT_6M
1 41(0.2) 42(2.8) 53(6.0) 34(0.2) 36(3.5) 40(5.7)
2 20(0.9) 22(4.0) 30(6.0) 21(0.9) . 36(5.7)
我想要把資料轉置成橫的,以GOT為例,
我要創造三個變項 GOT_0M GOT_3M GOT_6M (分別為0,3,6個月的GOT)
這三個時間點若無完全符合的值, 則抓正負一個月內的值來代替
若正負一個月內都無值, 則missing
值後面括號(是用哪個時間點的值)
---
以上大概是我的資料型態
實際的資料 有好幾百人的資料
每個人大概都有30~100個檢驗的時間點
檢驗數值(如GOT,GPT之類的) 大概有10幾個
而我們要取的時間點實際上也不只有三個(0,3,6,12,18,24,36,48M)
感覺有點複雜(囧)
我目前大概查一下 可能用PROC SQL先寫出來
再看改成MACRO
(我今天掙扎了一下午 只寫了一點點簡單的 完全離目標很遠XD)
想請問看板上的高手有無建議要用什麼statement寫比較適合?
我再研究一下
或是若有高手可以幫忙寫出來
小小3000P表達感謝!
非常謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.223.253.102
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1458658664.A.A7D.html
1F:推 west1996: 正負一個月如果有多個值是挑最接近的那個時間點嗎?如果 03/23 01:15
2F:→ west1996: 兩個時間點距離一樣要怎麼選?好比2.7跟3.3但沒有3.0這 03/23 01:15
3F:→ west1996: 樣選哪一個點? 03/23 01:16
4F:→ yonny: 對耶!沒想到這個問題! 選之前的時間點!! 03/23 09:31
5F:推 west1996: 先挑最近的,平手的話選之前的?還是無論如何都只選之前 03/23 22:37
6F:→ west1996: 的? 03/23 22:37
7F:→ yonny: 對 先挑最近的! 平手再挑之前的~ 03/25 00:27
8F:→ yonny: 或是先挑最近的~平手的話求平均 不知是否會很麻煩?謝謝~ 03/25 00:28