Comenzaremos una serie de consejos sobre la manipulación de fechas con SAS. Y a partir de ahí, empecemos desde el principio.
¿Cómo almacena SAS las fechas?
En SAS, cada fecha es un número único en una recta numérica. Las fechas anteriores al 1 de enero de 1960 son números negativos; los posteriores al 1 de enero de 1960 son positivos. Dado que los valores de fecha de SAS son variables numéricas, puede ordenarlos fácilmente, determinar intervalos de tiempo y usar fechas como constantes, como argumentos en funciones de SAS o en cálculos.
Fuente https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/basess/p1m2pok52uqfc3n16ebk28rrm7pl.htm
¿Cómo encontramos las fechas que se mantienen?
Encontramos fechas en las formas y formatos más variados posibles y de las maneras más creativas posibles, como en los ejemplos a continuación (pensando en el 3 de abril de 2023):
3/4/2023, 4/3/2023, 3ABR2023, 030423, 04032023, 03ABR2023, 20230403, etc.
¿Cómo lee SAS estas fechas?
SAS o el lenguaje SAS utiliza INFORMATs para facilitar su interacción no solo con fechas, sino también con otro tipo de datos para su lectura. Nos centraremos en esta serie solo en la lectura de datos de tipo DATA, siéntase libre de explorar todas las posibilidades en el siguiente enlace:
Fuente
Ejemplo:
Imagine que tiene un archivo de texto (o csv) como se muestra a continuación:
Japan 13may2000 8 Greece 17oct99 12 New Zealand 03feb2001 16 Brazil 28feb2001 8 Venezuela 10nov00 9 Italy 25apr2001 8 France 03jun1997 14 Switzerland 14jan2001 9 Australia 24oct98 12 Ireland 27aug2000 7 |
Al leer fechas, es una buena práctica de programación usar siempre DATE9. o MMDDAA10. informats para asegurar que los datos se leen correctamente. Si usa DATE7. o MMDDAA8. informat, SAS solo lee los dos primeros dígitos del año. Si los datos contienen años de cuatro dígitos, SAS lee el siglo y no el año.
En el ejemplo, usaremos FORMATO solo en la salida de PROC PRINT para que pueda ver las diferencias.
Fuente
Cuando ejecutemos el código a continuación, verá las diferencias en la lectura del campo de fecha en la salida PROC PRINT.
Código que ejecutaremos:
data viagemDate7;
infile 'Exemplo_datas.txt';
input Pais $ 1-11 @13 DataSaida date7. noites;
run;
proc print data=viagemDate7;
title "Leitura com Date7. e apresentando com Date7.";
format datasaida date7.;
run;
proc print data=viagemDate7;
title "Leitura com Date7. e apresentando com Date9.";
format datasaida date9.;
run;
data viagemDate9;
infile 'Exemplo_datas.txt';
input Pais $ 1-11 @13 DataSaida date9. noites;
run;
proc print data=viagemDate9;
title "Leitura com Date9. e apresentando com Date7.";
format datasaida date7.;
run;
proc print data=viagemDate9;
title "Leitura com Date9. e apresentando com Date9.";
format datasaida date9.;
run;
Salida del código
Lectura con Date 7. y presentando con Date7.
|
Lectura con Date7. y presentando con Date9.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lectura con Date9. y presentando con Date7.
|
Lectura con Date9. y presentando con Data9.
|
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!