Re: [程式] sas合併不同時期的同筆資料

看板Statistics作者 (Go)時間11年前 (2014/08/06 21:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
有點不懂你想表達的意思,暫且把重點放在這句話 "想要寫出SAS的程式,創造出新名稱,可以串聯同一家公司曾經用過的名稱,去了解 該公司在不同時期的其他資訊。" 下列語法的意思是A和B是同間公司但時間點不同,所以先定義一個新變數v3 其中A和B的值為K1,C值為K2,D值為K3。 之後用proc sql去抓你想要的公司,這邊假設是K1,然後依照時間變數V2排序。 不知道這是不是你要的答案 data w1; input v1 $ v2; if v1='A' then v3='K1'; else if v1='B' then v3='K1'; else if v1='C' then v3='K2'; else v3='K3'; cards; A 2012 B 2000 C 1999 A 2012 B 2000 C 1999 D 1988 ; run; proc sql; select v2,v3 from work.w1 where v3='K1' order by v2 desc; run; ※ 引述《ss502 (ss502)》之銘言: : ------------------------------------------------------------------------ : [軟體程式類別]: : sas : [程式問題]: : 資料處理 : [軟體熟悉度]: : 新手(不到1個月) : [問題敘述]: : 不好意思,在前一篇發文中,沒有把資料表達好。 : 資料庫較像這樣的情形。 : 新名稱 舊名稱 營業開始日期 year : A01 20001012 2000 : A01 20001012 2001 : A01 20001012 2002 : A01 20001012 2003 : A01 20001012 2004 : A01 20001012 2005 : A03 20030705 2003 : A03 20030705 2004 : A03 20030705 2005 : A07 A01 20020603 2002 : A07 A01 20020603 2003 : A07 A01 20020603 2004 : A07 A01 20020603 2005 : A11 19991212 1999 : A11 19991212 2000 : A11 19991212 2001 : A11 19991212 2002 : A11 19991212 2003 : A11 19991212 2004 : A11 19991212 2005 : A13 G17 20020908 2002 : A13 G17 20020908 2003 : A13 G17 20020908 2004 : A13 G17 20020908 2005 : B36 20010708 2001 : B36 20010708 2002 : B36 20010708 2003 : B36 20010708 2004 : B36 20010708 2005 : E06 A07 20031015 2003 : E06 A07 20031015 2004 : E06 A07 20031015 2005 : E07 A11 20041215 2004 : E07 A11 20041215 2005 : G17 B36 20020317 2002 : G17 B36 20020317 2003 : G17 B36 20020317 2004 : G17 B36 20020317 2005 : A01(20001012)變成A07(20020603)再變到E06(20031015),這是同一間公司。也就是說 : 這家公司在20001012-20020602這段期間叫做A01,而在20020603-20031015這段期間叫做 : A07,在20031015-到現在(取到20051231為止)叫做E06。 : A03(20030705),這間公司從頭到尾沒有變過名稱。 : A11(19991212)變成E07(20041215),這是同一間公司。意思是說這家公司在 : 19991212-20041215這段期間叫做A11,20041215-到現在(取到20051231為止)叫做E07。 : B36(20010708)變成G17(20020317)變成A13(20020908),這是同一間公司。 : 20010708-20020317這段期間叫做B36,而在20020317-20020908這段期間叫做G17, : 在20020908-到現在(取到20051231為止)叫做A13。跟上面不同的是他在同一年裡有 : 兩個名稱。 : 只要開始有一個名稱出現,每年都會出現。例如A01這間公司在20001012成立,之後每年都 : 會出現在資料庫當中,也就是說這個資料庫的資料是累積的。 : 這個資料庫觀察數大概有五十幾萬,而且名稱相當複雜沒有一定的規律。 : 想要寫出SAS的程式,創造出新名稱,可以串聯同一家公司曾經用過的名稱,去了解 : 該公司在不同時期的其他資訊。 : 希望板上大大幫忙,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.136.134.90 ※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1407331076.A.497.html
文章代碼(AID): #1JuYi4IN (Statistics)