作者ivylouise (繁華中的寧靜)
站內Statistics
標題[問題] 有關SAS對不同資料求N之一問
時間Fri Feb 27 08:26:58 2009
請問各位高手,
我該如何計算每個讀入資料的樣本數(n),再代入下面的原程式呢?
( 註:下面的程式後面有標明有使用到N的地方 )
因為我有好幾千筆資料,若每次因為n不同而要改下面的N,實在很頭大 Orz
昨晚想了幾個辦法,但似乎都不可行,所以上來請教各位高手們 ( 跪求~~~~ )
1.每個PRN檔的原始資料大概長的如下,但每次讀入的樣本數(n)不盡相同。
64.49481
69.85545
69.83425
73.84243
65.98784
.
.
.
.
2.原程式部份,
%MACRO a (yyyyy,aaaaaaa,c);
data b;
%LET f=%str (%'f:\Dr Liu\&yyyyy\&aaaaaaa..prn%');
infile %unquote(&f);
input pot1-pot31; <<====== N=31
array pot {31} pot1-pot31; <<====== N=31
c=0;
do i=1 to 31; <<====== N=31
do j=i+1 to 31; <<====== N=31
b=pot(i)-pot(j);
e=abs(b);
a=e;
put a=;
diff=c+a;
c=diff;
end;
end;
put diff=;
sum=0;
do i=1 to 31; <<====== N=31
c=sum+pot(i);
sum=c;
end;
averg=sum/31; <<====== N=31
put averg=;
g=diff /(2*31*31*averg); <<====== N=31
put g;
run;
data C&c;
set b ;
if g=. then g='─';
Gini&c= g;
keep Gini&c;
run;
%MEND a;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.124.101
1F:→ west1996:把你的N也寫成一個macro variable就好啦 02/27 09:36
2F:→ ivylouise:這樣子不就要知道每個讀入檔案的N Orz 02/27 09:58
3F:推 chien533:寫個有proc means的macro去算出每個檔案的N,然後另存新 02/27 11:21
4F:→ ivylouise:不過...謝謝你的建議 02/27 11:21
5F:→ chien533:資料檔,再用一個data step使用call symput去把新資料檔 02/27 11:22
6F:推 tew:雖然你說樣本數,可是就資料來看 似乎是變項數目 02/27 11:26
7F:→ chien533:裡面的N存成巨集變數,然後用do loop去跑這些巨集變數 02/27 11:28
9F:推 tew:應該說 就你的input pot1 -pot31 02/27 11:29
10F:推 tew:這樣子是變項數目 而非樣本數 02/27 11:30
11F:→ ivylouise:謝謝CH大~~~感謝你的資料^^ 02/27 13:42
12F:→ ivylouise:t大..我是把資料轉過來..類似像算這個變項的平方和 02/27 13:55
13F:推 tew:ㄜ..orz 那根本不需要用到這麼複雜的語法 02/27 16:53