2010年3月20日 星期六

搬家囉~

歡迎各位舊雨新知繼續支持小站
http://kenshin528.pixnet.net/blog
這裡將不再更新,謝謝

2010年3月12日 星期五

好用的「同上」--RETAIN指令

很多人在處理資料的時候會有一個需求,就是希望同一欄位的值會等於上一個CASE的值。

例如這樣一筆資料

ObsIDyear
1A2001
2.2002
3.2003
4.2004
5B1993
6.1994
7.1995
8C1996
9.1997
10.1998
11.1999
12.2000

.的地方表示「如上」,也就是說我們希望資料在處理後會長成

ObsIDyear
1A2001
2A2002
3A2003
4A2004
5B1993
6B1994
7B1995
8C1996
9C1997
10C1998
11C1999
12C2000

這個樣子那要怎樣讓那些.變成「如上」呢?

這時候就要運用RETAIN指令了

RETAIN的語法基本上是 RETAIN <需要「如上」的變項> <一開始代進去的數值>

以本例來說就是 RETAIN ID 0。

SAS處理資料是一次處理一行,retain ID 0的意思是說,
當SAS在處理ID這個變項的時候,手裡先拿著0,
如果該變項沒有數值(ID為MISSING的時候),就把手上的0放進去,
如果ID裡面有數值,就把手上的0丟掉,把碰到的數值拿在手上,
如果下一行的ID裡面沒有數值,就把手上的數值填進去。

當SAS讀進第一行

1A2001
因為ID裡面有個A,所以手上就會拿一個A,
2.2002

然後在處理第二行的時候,因為ID裡面沒有數值,就會把手上的A丟進去,變成

2A2002

這樣,然後帶著A前往下一行。

當SAS碰到

5B1993
這行的時候,因為ID裡面是不是MISSING,而是B,所以手裡會改拿B,前往下一行。

如此這般就會把所以MISSING照著「如上」的方式填滿囉~是個很常用到的功能唷。

2009年9月17日 星期四

趕論文中...Orz

這半年來都在趕論文...所以沒空更新網誌....真是對不起各位 囧~

2008年12月15日 星期一

填問卷 拿獎金~經濟不景氣~外快多少賺~

有在上網的朋友應該都知道市面上有很多座談會吧。

每參加一次就有幾百塊的車馬費可以領取,但是因為篩選條件嚴格,不好進入,

而且必須積極留意相關訊息才有機會,因此雖然車馬費高,但是要能參加實在麻煩。



http://valuedo2.statusad.com/?sa=1064

點眾網是一家市調公司,當有市調活動時,只要你填寫的資料符合最初審核資格,他們會以EMAIL方式將相關問卷寄給您,平常也不會收到垃圾信,非常貼心。您只要每天打開EMAIL,就知道有沒有適合您的活動。每次填寫問卷也可以得到幾百塊的台幣當作報酬,相對於又要主動注意訊息,又要出門的座談會,點眾相對來說是人性化、方便許多。有興趣的朋友可以點上面的連結了解相關訊息唷~經濟不景氣,多少賺點外快吧!

2008年11月17日 星期一

合併檔案-Set and Merge

在處理資料的時候,常常需要合併不同資料檔。例如使用社會變遷資料庫時,社會變遷資料庫是一年做一次,需要跨年度比較的時候就會需要把兩個年度的資料合併。這時候就需要使用合併檔案的指令-set和merge。
set和merge都屬於data step,要在data step中才能運作。set和merge的差別在於,set是垂直合併檔案,增加case數量;而merge是水平連結,增加變項數量。
畫個圖給大家看就很清楚了。

我們先產生適用於SET的兩筆資料
data A;
input a b c;
cards;
1 2 3
2 3 4
3 46;
run;

data B;
input a b c;
cards;
4 6 6
5 7 7
6 8 8;
run;
當兩筆資料變項相同的時候,使用set會產生這樣的結果:






data AB;
set A B;
run;




merge使用上要比較注意,就是在水平連結的時候,通常會依照兩筆資料相同的變項來做水平連結增加變項。
先產生使用merge的兩筆資料
data A;
input a b c ;
1 3 4
2 5 6
3 6 7;
run;

data B;
input a d e;
cards;
1 5 5
2 6 6
3 7 7;
run;


proc sort data=A;
by a;
proc sort data=B;
by a;
/*因為下述merge會用到by來連結檔案 所以要先sort(排序)*/


data AB;
merge A B;
by a;
run;





打開sas試試看就知道囉~:)

2008年11月6日 星期四

台灣人?



不想被抹顏色,不想多說什麼

2008年11月2日 星期日

提問區~賀突破100人次

感謝大家來參觀<(_ _)>
對於使用SAS的問題,如果我還沒有提到,又不知道怎麼跟我聯絡的話,
可以在這邊文章下面留言唷~我會盡力回答的Orz
謝謝^^