come detto sopra, la risposta è semplice:
date = input(monyy,date9.);
con l'aggiunta di:
put date=yymmdd.;
La ragione per cui questo funziona, e quello che hai fatto non significa, è a causa di un malinteso comune in SAS. DATE9. è un INFORMAT. In un'istruzione INPUT, fornisce all'interprete SAS una serie di comandi di traduzione che può inviare al compilatore per trasformare il testo nei numeri giusti, che appariranno come una data una volta applicato il FORMAT corretto. I FORMATI sono rappresentazioni visibili di numeri (o caratteri). . Quindi, utilizzando AAMMGG, è confuso la funzione INPUT consegnando un FORMAT invece di un INFORMAT, e probabilmente ottenuto un errore di utile che ha detto:
Invalid argument to INPUT function at line... etc...
Quale ti ha detto assolutamente nulla di cosa fare dopo.
In breve, per rappresentare la data del tuo carattere come YYMMDD. In SAS è necessario:
- cambiamento del INFORMAT -
date = input(monyy,date9.);
- applicare il formato -
put date=YYMMDD10.;
Se non è possibile lasciare un commento, non utilizzare una risposta per farlo. Ottieni una reputazione sufficiente e poi commenta. –
@ JonathanDrapeau D'altra parte, questa è probabilmente un'occasione in cui è onestamente più una risposta che un commento. –