[程式] SAS SQL 欄位內轉換格式

看板Statistics作者 (談無慾)時間9年前 (2014/08/27 19:17), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/3 (看更多)
[軟體程式類別]: 請填入軟體程式類別,例如:SAS、SPSS、R、EVIEWS...等 SAS [程式問題]: 資料處理、迴歸、敘述統計、logistic、probit...等 資料處理 [軟體熟悉度]: 請把以下不需要的部份刪除 中(3個月到1年) [問題敘述]: 格式大概長這樣 想從資料庫裡面抓的學號格式改成常見的格式 學號 切成 不需要 A1 B1 C1 00280061 -> 00 28 00 61 A1與B1轉換成學號的格式是這樣 00~09 -> 0~9 A~Z -> 10~36 C1則是完全取用 A1_TRANS B1_TRANC C1 所以這樣轉換後 28->S 00->0 61->61 合併起來之後 會變成S061 目前我是做了另外一張轉換表欄位分別是 A1 A1_TRANS 00 0 01 1 . . . . . . 28 S . . . . 36 Z 想請問有沒有辦法用轉換表去把A1 B1轉換後 創出新的表格 目前是把切開的學號表跟轉換表INNER JOIN 然後用WHERE抓 但會出現奇怪的東西 [程式範例]: 雖然張貼程式很可怕,但基本上有些程式還是要張貼才能解決 PROC SQL; CREATE TABLE WORK.TEST1 AS SELECT '學號'n, Substr('學號'n, 3,2) as 'A1'n, Substr('學號'n, 5,2) as 'B1'n, Substr('學號'n, 7,2) as 'C1'n FROM LASRLIB.'學號_TEST'n ; QUIT; /*inner join之後在 把需要的轉換取出來*/ proc sql; CREATE TABLE WORK.TEST2 AS select '學號'n, catx('','A1_TRANS'n,'B1_TRANS'n,'C1'n) as '轉換過的學號'n from 轉換表,TEST1 where TEST1.A1=轉換表.A1 and TEST1.B1=轉換表.A1 ; quit; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.254.125.244 ※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1409138261.A.14C.htmlMOONY135:轉錄至看板 Database 08/27 20:01

08/28 00:55, , 1F
一定要使用sql嗎?在data step使用column input和proc
08/28 00:55, 1F

08/28 00:56, , 2F
format應該就可達到你要的
08/28 00:56, 2F

08/28 04:14, , 3F
怕會有點慢?
08/28 04:14, 3F
文章代碼(AID): #1J_RvL5C (Statistics)
文章代碼(AID): #1J_RvL5C (Statistics)