Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down at the end of May, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Kieran McCaul <kieran.mccaul@uwa.edu.au> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
st: RE: simulation: finding the winner, and generating unique values |

Date |
Sat, 25 May 2013 11:40:30 +0800 |

... I'm not quite sure what the intent of the simulation is. 1. How can I simulate B so that only unique values of 1-5 are created? I don't understand what you mean here, particularly given that the code you use is under a comment "* simulate variable: B (values 1-5 sampled without replacement) ". There are 20 observations, 5 per level of "a". The only way that "b" can be assigned the values 1 to 5 without replacement is by assigning them within "a". I don't think this is what you are trying to do, but if it is, the following will do that: clear set seed 12358 * simulate A set obs 20 gen byte a = mod(_n,4) + 1 sort a by a:gen byte b=_n gen byte c = uniform()>=0.5 -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Michael McCulloch Sent: Saturday, 25 May 2013 3:31 AM To: statalist@hsphsun2.harvard.edu Subject: st: simulation: finding the winner, and generating unique values Greetings! * I have three questions related to the following data simulation. * 1. How can I simulate B so that only unique values of 1-5 are created? * 2. Is there a more elegant way to code simulation of variable B? * 3. How can I identify which variable B had the highest total count of C, within levels of A? clear set seed 12358 * simulate A set obs 20 //create 20 observations gen a=1 in 1/5 replace a=2 in 6/10 replace a=3 in 11/15 replace a=4 in 16/20 * simulate variable: B (values 1-5 sampled without replacement) gen b=. replace b=(1 + int(5*runiform())) if a==1 replace b=(1 + int(5*runiform())) if a==2 replace b=(1 + int(5*runiform())) if a==3 replace b=(1 + int(5*runiform())) if a==4 * simulate variable: C gen c1=uniform() //Generate n (equal chance of 0-1) gen c=. replace c=0 if c1<0.5 replace c=1 if c1>=0.5 drop c1 list, noobs Best wishes, Michael McCulloch, LAc MPH PhD -- Pine Street Foundation, since 1989 124 Pine Street | San Anselmo | California | 94960-2674 P: (415) 407-1357 | F: (206) 338-2391 | http://www.PineStreetFoundation.org * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**Follow-Ups**:**Re: st: RE: simulation: finding the winner, and generating unique values***From:*Michael McCulloch <mm@pinestreetfoundation.org>

**References**:**st: simulation: finding the winner, and generating unique values***From:*Michael McCulloch <mm@pinestreetfoundation.org>

- Prev by Date:
**Re: st: Interpreting coefficients of (logX)^2 variable in pooled OLS regression [SEC=UNOFFICIAL]** - Next by Date:
**Re: st: generating random numbers without replacement** - Previous by thread:
**st: simulation: finding the winner, and generating unique values** - Next by thread:
**Re: st: RE: simulation: finding the winner, and generating unique values** - Index(es):