Sas: hoe een tekenvariabele naar een datum te converteren


U kunt de functie input() in SAS gebruiken om een tekenvariabele naar een datumvariabele-indeling te converteren.

Deze functie gebruikt de volgende basissyntaxis:

 date_var = input (character_var, MMDDYY10. );
date_var format MMDDYY10. ;

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: Converteer een tekenvariabele naar een datum in SAS

Laten we zeggen dat we de volgende gegevensset in SAS hebben die de totale omzet van een winkel op zes verschillende dagen weergeeft:

 /*create dataset*/
data original_data;
    input day $sales;
    datalines ;
01012022 15
01022022 19
01052022 22
01142022 11
01152022 26
01212022 28
;
run ;

/*view dataset*/
proc print data = original_data;

We kunnen zien dat de dag een karaktervariabele is, maar deze moet in een datumnotatie worden weergegeven.

We kunnen de volgende code gebruiken om een nieuwe dataset te maken waarin we de dagvariabele converteren van een tekenformaat naar een datumformaat:

 /*create new dataset where 'day' is in date format*/
data new_data;
    set original_data;
    new_day = input (day, MMDDYY10. );
    format new_day MMDDYY10. ;
    drop day;
run ;

/*view new dataset*/
proc print data = new_data; 

Opmerking : we hebben de drop- functie gebruikt om de oorspronkelijke dagvariabele uit de dataset te verwijderen.

We kunnen zien dat de nieuwe variabele die we hebben gemaakt, new_day , de datumnotatie heeft.

Merk op dat MMDDJJ10. is slechts één mogelijk datumformaat dat we hadden kunnen gebruiken. Een volledige lijst met SAS-datumformaten vindt u hier .

Aanvullende bronnen

In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:

SAS: Hoe een tekenvariabele naar numeriek te converteren
SAS: Hoe een numerieke variabele naar karakter te converteren
SAS: Hoe ontbrekende waarden te vervangen door nul

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert