Join Now

Ændrer character til time

by Occasional Contributor schwartz on ‎05-20-2016 08:52 AM (315 Views)

Hej,

 

Jeg har en character variabel "date" i et datasæt "test" hvor de er givet ved

201212

201312

osv. 

Jeg vil gerne lave en tids variabel, så 201212 kommer til at blive 12/31/12. Hvordan kan dette lade sig gøre?

 

Mvh. Søren

Comments
by SAS Employee GeorgMorsing
on ‎05-22-2016 01:40 PM

Hej,

Du er ikke helt præcis i dit ønske. Du taler om tid, men det er vist kun noget med dato. Og du skriver at 201212 skal blive til 12/31/12. Det kan ikke lade sig gøre. 201212 kan blive til 12/20/12 efter formlen MMDDYY.

 

Nå, men jeg tror det er dette her du har brug for.

 

Georg

 

data tekst;

input dato_tekst $ 1-6;

datalines;

201212

311212

;

run;

data SAS_dato;

set tekst;

dato=input(dato_tekst,ddmmyy.);

format dato mmddyy10.;

run;

by Contributor Allan_dk
on ‎05-23-2016 02:13 AM

Det er ikke helt klart hvad inputdata faktisk betyder. Men måske dette hjælper dig.

 

 

data test;
input dato_pre $;
datalines;
201209
201210
201312
201502
201602
run;

data resultat;
set test;
dato_start=INPUT(CATS(dato_pre,"01"),ANYDTDTE10.);
dato_slut=INTNX("MONTH",dato_start,1,"BEGINNING")-1;
format dato_slut ddmmyy10. dato_start ddmmyy10.;
run;

 

by Super Contributor
on ‎05-23-2016 07:25 AM

Næsten ligesom Allan_dk 's forslag, men med lidt mindre kode.

data resultat;
set test;
format dato_slut ddmmyy10.; dato_slut=INTNX("MONTH",input(dato_pre,yymmn6.),1)-1; run;