Ich habe 2 .csv Datensätze mit jeweils einem Datum und Zeit in der ersten Spalte, die ich einlese und merge aber in einem Datensatz ist die Zeit um eine Stunde verschoben. Anstatt um 20:00 Uhr steht 19:00 Uhr aber in Wirklichkeit ist es 20 Uhr.
Ich glaube es liegt daran dass ich tagsekunde für beide Variablen gleich verwende...
bin Anfänger, kenn mich mit SAS nicht gut aus....
Hier ist der gesamte Code, es geht um Lärmdaten und Schlaf-Aktivitätsdaten, zuerst wird ein 10sek-Maximum der Lärmdaten genommen und dann geplottet mit den 10sek Aktivitätsdaten. Der erste plot überlagert die 2 Datensätze einfach für die ganze Zeitspanne, beim 2. ist es ein Mittelwert über die Woche. Habe den Code nicht selber geschrieben...
Ich versuchte zur Einheit tagsekunde einfach 3600 sek zu addieren aber dann hat sich einfach die Skala verschoben, aber die Daten nicht angepasst. weiss nicht wie ich die act variable zeitverschoben plotten kann... z.T. hat es noch Fehler drin, auch bei graphout das funktioniert so noch nicht..
hat jemand eine Idee wie das einfach gemacht werden könnte?? oder ist es nicht so einfach? wäre froh um Ideen...
dm'clear output';
dm'clear log';
options nocenter pagesize=77;
Title'SIAS';
DATA Act;
infile "D:\SIAS_Daten\248\B00309_2016-10-21_19-00-00.csv" delimiter=',' firstobs=2 lrecl=1900;
input date ANYDTDTM19. Act Light;
checkdate_time=put(Date,datetime.); *ANYDTDTM mit diesem Befehl kann man jedes Datum_Zeit Format lesen!!!;
tag=ceil(Date/86400);
tagsekunde=date-tag*86400;
tagsekunde=tagsekunde+3600; /*Korrekutur weil Zeit im Aktimetrifile eine Stunde zu früh angegegen wurden (19:00 anstatt 20:00)*/
hour=ceil(tagsekunde/3600); * in Sekunden: 3600=Stundensegment;
wochentag=weekday(tag);
monat=month(tag);
Jahr=year(tag);
woche=week(tag);
DATA Noise;
infile "D:\SIAS_Daten\248\E015_2016_10_21__11h05m35s.csv" delimiter=';' firstobs=4 lrecl=1900;
input date ANYDTDTM19. L_Max_A LEQ_A L_Min_A;
checkdate_time=put(Date,datetime.); *ANYDTDTM mit diesem Befehl kann man jedes Datum_Zeit Format lesen!!!;
tag=ceil(Date/86400);
tagsekunde=date-tag*86400;
hour=ceil(tagsekunde/3600); * in Sekunden: 3600=Stundensegment;
wochentag=weekday(tag);
monat=month(tag);
Jahr=year(tag);
woche=week(tag);
run;
DATA Noise_10; set noise;
date10=ceil(date/10);
date10=date10*10;
run;
Proc sort DATA=Noise_10; by date10;
Proc means DATA=noise_10 n mean stderr noprint;
var L_max_A LEQ_A L_min_A;
by date10;
output out=snoise_10 max=Lmax LEQA LminA;
run;
DATA snoise_10_b; set snoise_10;
rename date10=date;
run;
Proc sort DATA=Act; by date;
Proc sort DATA=sNoise_10_b; by date;
DATA Noise_Act; merge Act sNoise_10_b; by date;
DATA Noise_Act_out; set Noise_Act;
if act='.' then delete;
subj=248;
run;
Proc EXPORT DATA= WORK.Noise_Act_out
OUTFILE= "D:\OUTPUT\248_2016-10-21_19-00-00_noise_act.XLSx"
DBMS=EXCEL REPLACE;
Sheet="act_noise";
RUN;
Proc SORT DATA=Noise_Act_out; by tagsekunde;
Proc means DATA=noise_act_out n mean stderr noprint;
var Act LEQA;
by tagsekunde;
output out=tagnoise_act mean=mact MLEQA;
run;
Proc sort data=Noise_Act_out; by date;
GOPTIONS RESET=ALL DEVICE=png
GUNIT=CELL ROTATE=LANDSCAPE CBACK=white;
filename graphout 'D:\figures\w248.png';
goptions reset=all device=png gsfname=graphout;
PROC gplot DATA=Noise_Act_out;
plot (Act Lmax)*date / overlay frame vaxis=axis1 haxis=axis2
cv=white ch=white;
/*
axis1 c=black
length=10 cm
order=-1.5 to 1.5 by 0.5
value=(f=simple h=1.4);
/*
axis2 c=black
length=14 cm
order=0 to 100 by 5
value=(f=simple h=1.4);
*/
symbol1 i=join c=black v=none l=1 mode=include w=1;
symbol2 i=join c=red v=none l=1 mode=include w=1;
symbol3 i=join c=red v=dot l=1 mode=include w=1;
symbol4 i=join c=white v=circle l=1 mode=include w=1;
run;
GOPTIONS RESET=ALL DEVICE=png
GUNIT=CELL ROTATE=LANDSCAPE CBACK=white;
Proc sort data=tagNoise_Act; by tagsekunde;
filename graphout 'D:\figures\m248.png';
goptions reset=all device=png gsfname=graphout;
PROC gplot DATA=tagNoise_Act;
plot (mAct mLeqA)*tagsekunde/ overlay frame vaxis=axis1 haxis=axis2
cv=white ch=white;
/*
axis1 c=black
length=10 cm
order=-1.5 to 1.5 by 0.5
value=(f=simple h=1.4);
/*
axis2 c=black
length=14 cm
order=0 to 100 by 5
value=(f=simple h=1.4);
*/
symbol1 i=join c=black v=none l=1 mode=include w=1;
symbol2 i=join c=red v=none l=1 mode=include w=1;
symbol3 i=join c=red v=dot l=1 mode=include w=1;
symbol4 i=join c=white v=circle l=1 mode=include w=1;
run;
... View more