Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | "Hoffman, George" <ghoffman@mcw.edu> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | st: RE: RE: RE: RE: RE: summarize conditions within subjects in panel data |
Date | Mon, 29 Nov 2010 12:44:02 -0600 |
Not quite. The problem is with missing values. bysort id (hour) : gen mysum = sum(varx < 50) the function sum(varx<50) reports 0 if varx is missing. But - if varx is missing for the entirety of the hours in a given id, I'd like mysum = sum(varx<50) to be missing. If I add if varx<. To the end of the bysort... command, then the sum is missing if the varx is missing in the last hour. This is a generic issue that I've been thinking wrongly about for years, and need correction! -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Hoffman, George Sent: Monday, November 29, 2010 12:26 PM To: statalist@hsphsun2.harvard.edu Subject: st: RE: RE: RE: RE: summarize conditions within subjects in panel data This works. Thanks! -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox Sent: Monday, November 29, 2010 12:13 PM To: 'statalist@hsphsun2.harvard.edu' Subject: st: RE: RE: RE: summarize conditions within subjects in panel data bysort id (hour) : gen mysum = sum(varx < 50) Nick n.j.cox@durham.ac.uk Hoffman, George id: integers 1,2....200 hour: integers 1,2...48 varx : continuous, 0-100 and missing Nick Cox We need to know more about how -hour- is defined and measured. Is it a time since some zero, or a duration? Show a segment of your data for one subject. Hoffman, George I've got a panel dataset (xt) uniquely identified by subject (id) and time (hour), sorted by id hour. I'd like to generate a variable that counts the cumulative (within id, across hour) number of hours that a variable is less than 50. My code so far: gen varxl50 = varx <50 if varx <. bysort patnum (hour): gen varxl50sum = sum(varxl50) I'm running into problems because of missing values I think. Does this code look right? Is there a mode succinct way to code this? * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/