/ / ¿Cómo convierto la fecha (diaria) a la fecha del mes? - stata

¿Cómo convierto la fecha (diaria) a la fecha del mes? - stata

En Stata, ¿cómo convierto la fecha en la forma de:

09mar2005 00:00:00

a una variable mes-año?

Si importa, el formato de fecha es %tc.

Lo que tengo en mente es trazar promedios mensuales (en lugar del promedio diario que tengo) de variables a lo largo del tiempo.

Respuestas

0 para la respuesta № 1

Hay diferentes formas de obtener la salida deseada dependiendo de cómo desea utilizar esta variable posteriormente.

La forma más sencilla es hacer algo como:

generate date_time = "09mar2005 00:00:00"
generate month_year = substr(date_time, 3, 7)

Entonces puedes usar el date() función para convertir month_year para su uso posterior.


0 para la respuesta № 2

Para llegar a donde estás ahora, tú o alguien más puede haber hecho algo como esto:

clear
set obs 1
gen earlier = "09mar2005 00:00:00"
gen double nowhave = clock(earlier, "DMY hms")
format nowhave %tc
list

+-----------------------------------------+
|            earlier              nowhave |
|-----------------------------------------|
1. | 09mar2005 00:00:00   09mar2005 00:00:00 |
+-----------------------------------------+

Tenga en cuenta que una fecha de cadena y una variable de fecha y hora numérica con el formato de fecha y hora apropiado %tc solo mira lo mismo cuando tu list Ellos, pero son bestias bastante diferentes.

Para llegar a donde quiere estar, con una fecha mensual, usted convierte de reloj (fecha y hora) a diario a mensual:

gen mdate = mofd(dofc(nowhave))

format mdate %tm

list

+--------------------------------------------------+
|            earlier              nowhave    mdate |
|--------------------------------------------------|
1. | 09mar2005 00:00:00   09mar2005 00:00:00   2005m3 |
+--------------------------------------------------+

Todo está documentado en help datetime. Los nombres de funciones representan men th of dcita y dcita of cbloquear.