SAS - Data e Horários
As datas do IN SAS são um caso especial de valores numéricos. Cada dia é atribuído a um valor numérico específico a partir de 1º de janeiro de 1960. A essa data é atribuído o valor de data 0 e a próxima data tem um valor de data 1 e assim por diante. Os dias anteriores a esta data são representados por -1, -2 e assim por diante. Com esta abordagem, o SAS pode representar qualquer data no futuro e qualquer data no passado.
Quando o SAS lê os dados de uma fonte, ele converte os dados lidos em um formato de data específico, conforme especificado no formato de data. A variável para armazenar o valor da data é declarada com as informações adequadas necessárias. A data de saída é mostrada usando os formatos de dados de saída.
SAS Data Informat
Os dados de origem podem ser lidos corretamente usando informações de datas específicas conforme mostrado abaixo. O dígito no final da informação indica a largura mínima da string de data a ser lida completamente usando a informação. Uma largura menor dará resultado incorreto. com SAS V9, há um formato de data genéricoanydtdte15. que pode processar qualquer entrada de data.
Data de entrada | Largura da data | Informat |
---|---|---|
11/03/2014 | 10 | mmddyy10. |
11/03/14 | 8 | mmddyy8. |
11 de dezembro de 2012 | 20 | worddate20. |
14mar2011 | 9 | data9. |
14-mar-2011 | 11 | date11. |
14-mar-2011 | 15 | anydtdte15. |
Exemplo
O código abaixo mostra a leitura de diferentes formatos de data. Observe que todos os valores de saída são apenas números, pois não aplicamos nenhuma instrução de formato aos valores de saída.
DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10. ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.
Formato de saída de data SAS
As datas, depois de lidas, podem ser convertidas para outro formato conforme exigido pelo display. Isso é obtido usando a instrução de formato para os tipos de data. Eles assumem os mesmos formatos das informações.
Exemplo
No exemplo a seguir, a data é lida em um formato, mas exibida em outro formato.
DATA TEMP;
INPUT @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format DOJ1 date11. DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998
;
PROC PRINT DATA = TEMP;
RUN;
Quando o código acima é executado, obtemos a seguinte saída.