2015-03-31 62 views
0

我想找到以下數據庫的平均值; 我正在嘗試的方式,我得到的基礎上沒有意思。觀察在這種情況下是6。但我想它基於日子就這樣說到像均值= Timeread /(沒有天數的)。這是3使用SAS的平均程序

name Day Timeread 
X  1  12 
X  1  23 
X  1  12 
X  2  8 
X  2  5 
X  3  3 

這是我用

代碼
proc summary data = xyz nway missing; 
    class Name; 
    var timeread; 
    output out = Average mean=; 
run; 
proc print data = Average; 
run; 

回答

0

如果你只是用不同的總天總想timeread的平均

Data HAVE; 
Input name $ Day Timeread ; 
Datalines; 
X  1  12 
X  1  23 
X  1  12 
X  2  8 
X  2  5 
X  3  3 
; 
Run; 

Proc Sql; 
    Create table WANT as 
    Select Name, (select count(distinct(Day)) from HAVE) as DAYS 
    , sum(timeread) as TIMEREAD_TOTAL 
    , calculated timeread_total/calculated days as MEAN 
    From HAVE 
    Group by Name; 
Quit; 
+0

沒有,這給我輸出在下面的格式 '名稱Timeread' 'X(12 + 23 + 12)/ 3' 'X(8 + 5)/ 2' 'X(3/1)' 相反,我想 'X(12 + 23 + 12 + 8 + 5 + 3)/ 3' PS遺憾不能夠把它的代碼格式,因此很容易理解 – Sam 2015-03-31 15:55:37

1

我不知道如何與proc mean做到這一點,但你可以做到這一點的SQL就像這樣:

proc sql noprint; 
    create table want as 
    select name, 
     sum(timeread)/count(distinct day) as daily_mean 
    from have 
    group by name 
    ; 
quit; 

這使用來自@ CarolinaJay65的答案的HAVE數據集。

+0

是,這是我想要的輸出,但使用proc summary或​​proc mean。 – Sam 2015-03-31 16:52:49