Das folgende Bit von SAS-Code soll aus einem Dataset lesen, das eine numerische Variable namens "Radvalue" enthält. Radwert ist die Temperatur eines Heizkörpers, und wenn ein Heizkörper ausgeschaltet wird, aber seine Temperatur um 2 oder mehr steigt, ist es ein Zeichen dafür, dass er eingeschaltet ist, und wenn er eingeschaltet ist, aber seine Temperatur um 2 oder mehr abnimmt, ist dies ein Zeichen dafür es ist ausgegangen. Radstate ist eine neue Variable im Datensatz, die für jede Beobachtung angibt, ob der Heizkörper ein- oder ausgeschaltet ist, und ich versuche, dies automatisch für den gesamten Datensatz zu tun. Ich versuche also, die LAG-Funktion zu verwenden, indem ich versuche, die erste Zeile zu initialisieren, die keinen dif_radwert hat, und dann versuche, den gerade beschriebenen Algorithmus auf Zeile 2 anzuwenden. Irgendeine Idee, warum die Spalten Radstate und l_radstate völlig leer ausgehen?Weitere Probleme mit der LAG-Funktion ist SAS
Danke everso viel !! Lassen Sie es mich wissen, wenn ich das Problem nicht klar erklärt habe.
Data work.heating_algorithm_b;
Input ID Radvalue;
Datalines;
1 15.38
2 15.38
3 20.79
4 33.47
5 37.03
6 40.45
7 40.45
8 40.96
9 39.44
10 31.41
11 26.49
12 23.06
13 21.75
14 20.16
15 19.23
;
DATA temp.heating_algorithm_c;
SET temp.heating_algorithm_b;
DIF_Radvalue = Radvalue - lag(Radvalue);
l_Radstate = lag(Radstate);
if missing(dif_radvalue) then
do;
dif_radvalue = 0;
radstate = "off";
end;
else if l_Radstate = "off" & DIF_Radvalue > 2 then Radstate = "on";
else if l_Radstate = "on" & DIF_Radvalue < -2 then Radstate = "off";
else Radstate = l_Radstate;
run;
Post einige Beispieleingangsdaten, idealerweise mit Datenleitungen oder Karten, um logische Probleme mit Ihrem Code zu lösen, wenn eine –
Hallo, danke - hier einige Beispieldaten ist: Eingang ID Radvalue; Datalinen; 15,38 15,38 20,79 33,47 37,03 40,45 40,45 40,96 39,44 31,41 26,49 23,06 21,75 20,16 19,23 ; –