2017-06-29 1 views
1

Ich möchte eine kurze Frage stellen. Ich denke, ich kann das besser erklären, indem ich einfache Beispiele benutze. Also, ich habe folgende Daten:SAS_Stan.Dev für jede Minute

Time   Value 
13:45   0.2 
13:45   0.4 
13:45   0.3 
13:46   0.1 
13:46   0.2 
13:46   0.3 
13:46   0.5 
13:46   0.4 

Ich möchte eine weitere Spalte hinzuzufügen. Der Wert in dieser Spalte sollte die Standardabweichung für jede Minute sein. Also, ich möchte folgende Daten erhalten:

Time   Value  St.D 
    13:45   0.2   0.1 (it is the standard deviation of 0.2,0.4 and 0.3 - so st.dev for 13:45) 
    13:45   0.4   0.1 
    13:45   0.3   0.1 
    13:46   0.1   0.1528 (it is the standard deviation of 0.1,0.2,0.3,0.5 and 0.6 - so st.dev for 13:46) 
    13:46   0.2   0.1528 
    13:46   0.3   0.1528 
    13:46   0.5   0.1528 
    13:46   0.6   0.1528 

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

0

Daten vorbereiten:

data a; 
    time ="13:45"; 
    value=0.2; 
    output; 
    time ="13:45"; 
    value=0.4; 
    output; 
    time ="13:45"; 
    value=0.3; 
    output; 
    time ="13:46"; 
    value=0.1; 
    output; 
    time ="13:46"; 
    value=0.2; 
    output; 
    time ="13:46"; 
    value=0.3; 
    output; 
    time ="13:46"; 
    value=0.5; 
    output; 
    time ="13:46"; 
    value=0.6; 
    output; 
run; 

berechnen stddev:

proc summary data=a stddev nonobs noprint nway; 
    by time; 
    var value; 
    output out=b(drop=_type_ _freq_) stddev()=; 
run; 
proc sql noprint; 
    CREATE TABLE res AS 
    SELECT a.* 
     ,b.value as stddev 
    FROM a 
    LEFT JOIN b 
    ON a.time=b.time 
    ; 
quit; 

enter image description here

jedoch die stddev von 13.46 von unterscheidet Ihre erwartete. Außerdem haben Sie einen Tippfehler in Ihren Beispieldaten für 13:46 ([0.1,0.2,0.3,0.4,0.5], [0.1,0.2,0.3,0.5,0.6]).

Verwandte Themen