[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Using sts list results in do-files

From   Jan Brøgger <>
To   <>, <>
Subject   st: Using sts list results in do-files
Date   Mon, 3 Mar 2008 21:48:51 +0100

There was a previous post on Statalist by James Harris about getting the results of -sts list- into a format accessible to Stata programs. I've made a small program that does just this, preliminary called st_survat. You'd call it with stset data and after generating a survival variable with stgen. It uses previous Statalist suggestions about using "stgen" but has a little logic to select the next earlier time point if the wanted time point isn't actually in the dataset. The use case is where you want to mass-produce summaries of survival-level data in a table. 

It's a quickie, and I can't write Stata help files so I prefer to post it here (too many {(/*'}). If anybody wants to embellish it with help files and a -sysuse- example, I'd be happy. I may get around to it.

*This program returns the survival at a given time point
*in an r-class macro, making results like "sts list" 
*accessible by a Stata program
* 1) data is stset
* 2) a survival variable has been generated using stgen
program define st_survat , rclass
	syntax [if], at(real) survvar(varlist min=1 max=1)
	st_is 2 full
	if "`if'"!="" {
		local if " & `if'"
	/* Check if we have an exact match on the time scale */
	qui summ `survvar' if _t==`at' & _t<=`at' `if'
	if `r(N)'==0 {
		*no match, so get the next smallest match
		qui summ _t if _t<=`at' `if'
		local time=`r(max)'
	else {
		local time=`at'
		local surv "`r(min)'"
	/* Get the survival at the best time match */
	qui summ `survvar' if _t==`time' `if'
	local surv=`r(min)'
	di "surv at `at' (same as `time') is `surv'"
	return scalar at=`at'
	return scalar t=`time'
	return scalar survival=`surv'

Yours, Jan Brogger, postdoc University of Bergen

*   For searches and help try:

© Copyright 1996–2019 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index