Truco

Tablas para una hoja de cálculo en Stata


Cuando se requiere un gran número de tablas  en una hoja de cálculo y la programación no se encuentra disponible, es posible realizar esto fácilmente con el siguiente método:

Escriba un programa especial para la tabla (o cualquier otra salida) que se requiera. Si hay un grupo de tablas diferentes a continuación hay un programa especial para cada tabla.

El programa se inicia un archivo de registro o programación (archivo de texto que contiene órdenes y da instrucciones a Stata para ejecutar los comandos almacenados en el archivo) y luego ejecuta el comando table. A continuación, cierra el archivo de registro. El archivo de registro se somete posteriormente a través de un filtro de archivos para eliminar cualquier texto no deseado.

Se importa la programación y resultados de STATA por medio del comando insheet, limpiando todo el archivo de registro correspondiente, eliminando cualquier texto no deseado y posteriormente divide las columnas de las tablas en formato STATA, la limpieza depende de la salida deseada.

Después de haber terminado la limpieza, esto es guardado como anexo o  utilizando la opción requerida.

Entonces el usuario anexa la tabla al archivo correspondiente en la hoja de cálculo

Una vez se termine el archivo que contiene todas las tablas se puede abrir en una hoja de cálculo.

clear programs // Borra el programa anterior para permitir modificaciones - Esto se puede quitar cuando se está satisfecho con el programa
program tables 
version 11.0 
syntax varlist(max=2 min=2) [, append] gen(string) 
tokenize `varlist'  // varlist división
   
capture log using a, text replace  
label var `1' `=strtoname("`:var lab `1'' " )'  // combinación de la etiqueta en una sola palabra
label var `2' `=strtoname("`:var lab `2'' " )'  
table `1' `2', stubwidth(40)  
log close  
   
filefilter a.log a1.log , from("-") to("") replace  // eliminación de textos no deseados en el archivo de registro
filefilter a1.log a2.log , from("|") to("") replace  
filefilter a2.log a3.log , from("+") to("") replace  
insheet using a3.log, clear  // trae el archivo de registro en Stata
drop in -4/-1  // deshacerse de otros registros
drop if strpos(v1,"log")  
drop if strpos(v1,"pause")  
drop if strpos(v1,"resumed")  
drop if strpos(v1,"unnamed")  
drop if strpos(v1,":")  
capture drop v2  
split v1  
drop v1 
   
//additional cleaning up if required  
replace v11=subinstr(v11,"_", " ",. ) in 1/2  
quietly: d  
local a1=round(`r(k)'/2)  
replace v1`a1'=v11[1] in 1  
replace v11="" in 1  
   
set obs `=_N+2'  // un espacio de dos líneas entre las tablas
   
if "`append'"!="append" {  
save `gen', replace  
}  
   
if "`append'"=="append" {  
append using `gen'  
save `gen' , replace  // guarda el archivo al disco duro
}  
end  // Fin del programa
   
*********************************************
** Ejemplos de comandos que llaman el programa anterior
********************************************* 
sysuse auto, clear  
set more off  
cd c:/  
tables for rep78, gen(aa)  //1 ª tabla
   
sysuse auto, clear  //2 ª tabla
tables rep78 for, append gen(aa) 
   
sysuse auto, clear  //3 ª tabla
tables for rep78, append gen(aa)  
   
list ,noheader sep(0) noobs  
   
outsheet using c:/aa.csv, comma nonames replace  // guardarlo en el disco duro y esto puede ser abierto en una hoja de cálculo
   
exit
 

Generando tablas de la siguiente forma

La cual será exportada a una hoja de cálculo

¡Guarda esta información!

Descargalo en PDF

Descargar

¡Comparte este evento con tus colegas!

Email

Enviar

WhatsApp

Facebook

Cotizar
Próximos
Eventos

X

Mis cotizaciones:

Comentarios a tu solicitud:

Cotizar