Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: simulation: finding the winner, and generating unique values
From
Kieran McCaul <[email protected]>
To
"[email protected]" <[email protected]>
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: [email protected] [mailto:[email protected]] On Behalf Of Michael McCulloch
Sent: Saturday, 25 May 2013 3:31 AM
To: [email protected]
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/