Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

Re: st: Converting count to dichotomous variable

 From Eric Booth <[email protected]> To [email protected] Subject Re: st: Converting count to dichotomous variable Date Sat, 10 Mar 2012 15:57:40 -0600

```On Mar 10, 2012, at 3:05 PM, Shittu, Aminu wrote:
>
>  Is it possible to force them in a single graph with 7 lines each for a pond, showing monthly totals?

Building on the previous example....

***************!
clear

*--fake data
set obs 7
g var3 = _n
expand 365
sort var3
g var2 = int(30+runiform()*100)
g var1 = int(runiform()*4)
su var*
by var3:  g day = _n

*---create fake month var:
by var3: g month = int(runiform()*12+1)
loc i = 1
foreach m in `c(Mons)' {
loc l `l' `i' `"`m'"'
loc i `++i'
} //label.months
lab def jj `l', modify
lab val month jj
ta month //use your real month data for real day counts

*---graph: monthly totals for each pond (var3)

*--1. create monthly totals of mortalities(var1)
bys month var3: egen mt_var1 = total(var1)
lab var mt_var1 "monthly total mortalities for each pond"
bys month: egen mt_var2 = total(var1)
lab var mt_var2 "monthly total mortalities for ALL ponds"
lab var var3 "Pond"

*--2. graphs

**graph macro for options:
loc opts `"name(g1, replace) xtitle(Month) xlabel(#12, labels labsize(small) angle(forty_five) valuelabel) title(Mortalities Totals each Month) scheme(sj) xsize(10) ysize(6)"' //watch for wrapping!!

**a. Overall Totals
twoway (line mt_var2 month,  ///
sort  cmissing(y)),  ///
subtitle({bf:All Ponds}) `opts'
graph save g1 `"overall.gph"', replace

**b. by Pond
*-build graph command:
levelsof var3, loc(ponds)
foreach x in `ponds' {
loc p  `" `p'  (line mt_var1 month if var3 == `x') "'
loc leg `" `leg' `x' `"Pond `x'"' "'
} //line for each pond
di `"`leg'"'
twoway `p',  legend(on order(`"`leg'"') size(vsmall)) ///
subtitle({bf:By Ponds}) `opts'
graph save g1 `"ByPond.gph"', replace

***************!

- Eric

__
Eric A. Booth
Public Policy Research Institute
Texas A&M University
[email protected]
+979.845.6754

On Mar 10, 2012, at 3:05 PM, Shittu, Aminu wrote:

>  Hi Eric and all,
>
> Thank you very much, it works perfectly!
>
> May I further ask on how I could plot a single line graph showing the total number of daily or monthly mortality totals in each of the 7 ponds? My hurdle is that mortality was recorded at least everyday for 365 days (365*7), say from 1st - 31st of January.....1st to 31st of December for each of the 7 ponds. If I am to work with the monthly record, I will have 30*12*7 or 31*12*7 rows/pond except for February which has 28 in this case. Is it possible to force them in a single graph with 7 lines each for a pond, showing monthly totals?
>
> Aminu.
>
>
>
>
>
>
>
> ________________________________
> From: Eric Booth <[email protected]>
> To: [email protected]
> Sent: Friday, March 9, 2012 10:23:31 PM
> Subject: Re: st: Converting count to dichotomous variable
>
>
>
> <>
>
> Sorry, your mortalities were in var1, not var2, so the line:
>
> bys day: egen var4_b = max(var2)
>
> should have said:
>
> bys day: egen var4_b = max(var1)
>
> but the main point is the same.
>
> EAB
>
> __
> Eric A. Booth
> Public Policy Research Institute
> Texas A&M University
> [email protected]
> Office: +979.845.6754
>
>
>
>
> On Mar 9, 2012, at 3:57 PM, Eric Booth wrote:
>
> <>
>
> One strategy is to take the max number of mortalities (via -egen-) across all obs. in each day (or each pond/day -- I'm not sure which you need) and then recode anything greater than zero as a "1" indicating that mortalities occurred (leaving it as zero otherwise).  Here a quick example:
>
>
> ***************!
> clear
>
> *--fake data
> set obs 7
> g var3 = _n
> expand 365
> sort var3
> g var2 = int(30+runiform()*100)
> g var1 = int(runiform()*4)
> su var*
>
>
>
> **var4**
> *--daily mortality
> by var3:  g day = _n
>
> *---1. for each pond/day
> g var4_a = 1 if var1 != 0 //no mortalities each pond/day
> replace var4_a = 0 if mi(var4_a)
>
> *---2.  for each day only
> bys day: egen var4_b = max(var2)
> recode var4_b (1/max = 1) (0=0)
>
> su var4*
>
>
> ***************!
>
> - Eric
>
> __
> Eric A. Booth
> Public Policy Research Institute
> Texas A&M University
> [email protected]
> Office: +979.845.6754
>
>
> On Mar 9, 2012, at 3:30 PM, Aminu Shittu wrote:
>
> Dear Statalisters,
>
> I have var1 in my data set which represents number of death in a fish pond and var2 representing the existing number. The daily mortality was recorded in 7 fish ponds (var3) for a period of 1 year (365x7 rows). I am interested in creating a dichotomous var4, to indicate whether a daily mortality had occurred or not, without taking number of counts into consideration. Is it possible to do this in Stata or Excel?
>
> Aminu.
> *
> *   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/

*
*   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/
```