1 votos

¿Cómo añadir observaciones adicionales a los datos de panel?

Este es mi conjunto de datos de muestra

enter image description here

¿Cómo puedo añadir para cada identificador una nueva observación para el mes 10 de 2020 que sería la media del mes 8 de 2020 y del mes 9 de 2020?

He probado lo siguiente, sin embargo, casi funciona pero no asigna el nombre de la categoría al valor del id correspondiente y el promedio no se toma correctamente

egen year_m_id=group(year month) /* 127 & 128 correspond to 2020 month 8,9 */
global id=r(levels)
foreach id of global id{
generate tmp=category if id==`id'
local 2020_9=_N+1
set obs `2020_9'
local 2020_9=_N
replace id =`id' if _n==`2020_9'
sum value if year_m_id===127|year_m_id==128 & id == `id'
replace value = r(mean) if _n==`2020_9' & id == `id'
replace year = 2020 if _n==`2020_9' 
replace month = 2020 if _n==`2020_9' 
replace category = tmp if _n==`2020_9' & category=="" & _n==`2020_9' 
drop tmp
}

1 votos

¿Puede enseñarnos qué ha probado hasta ahora?

0 votos

Por favor, vea mi edición

2voto

jack.spicer Puntos 301

No estoy seguro de que sea el tema, pero le daré una solución sencilla. Quizás no sea la más eficaz, pero debería ser bastante fácil de seguir.

Suponiendo que también quiera conservar "categoría" y no sólo "id", ¿qué le parece algo como lo siguiente?

use sample.dta, clear
tempfile month10
preserve
keep if month==8 | month==9
collapse value , by(year category id)
gen month=10
save `month10' , replace
restore
append using `month10'

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X