Re: [R] Question about avoid the for loop

From: Carrie Li <carrieandstat_at_gmail.com>
Date: Thu, 03 Jun 2010 19:24:58 -0400

Thanks! Jorge
Just one more question I don't get it even after checking help For option, why just using with(d,...), ifelse works on stratum indexed by x automatically ?
Since in with, we didn't specify the stratum is indexed by x, what if you have another categorical variable in the data ? Thanks again!

On Thu, Jun 3, 2010 at 12:21 PM, Jorge Ivan Velez <jorgeivanvelez_at_gmail.com>wrote:

> Hi Carrie,
>
> Here are two options:
>
> # Option 1
> d <- data.frame(x, t)
> y <- with(d, ifelse(t == 0, rbinom(2, 1, 0.2), rbinom(3, 1, 0.8)))
> y
>
> # Option 2 -- more general case, e.g. you do not know
> # how many 0's and 1's you have within each strata
> spd <- with(d, split(d, x))
> do.call(c, lapply(spd, function(comp)
> with(comp, ifelse(t == 0, rbinom(sum(t==0), 1, 0.2),
> rbinom(sum(t!=0), 1, 0.8)))))
>
> HTH,
> Jorge
>
>
> On Thu, Jun 3, 2010 at 11:49 AM, Carrie Li <> wrote:
>
>> Dear R-helpers,
>>
>> I would like to generate a binary random variable within a stratum's
>> stratum. Here is a simple example.
>>
>>
>> ## x is the first level strata index, here I have 3 strata.
>> x=c(rep(1,5), rep(2,5), rep(3,5))
>>
>> ## within x, there is a second strata indexed by t=0 and t=1
>> t=rep(c(0,0,1,1,1),3)
>>
>>
>> ## and within strata i and t=0 and t=1, I generate the random binomial
>> variable respectively, and save in y
>> y=rep(NA, length(x))
>> for (i in 1:3)
>> {
>> y[(x==i)&(t==0)]=rbinom(2, 1, 0.2)
>> y[(x==i)&(t==1)]=rbinom(3, 1, 0.8)
>> }
>>
>>
>> My question: is there any way to avoid the for loop, since I have the
>> first
>> level strata has thousands of strata. (Within each x stratum, the t only
>> has
>> 2 levels, 0 and 1 )
>>
>> Thanks for any help!
>>
>> Carrie
>>
>> [[alternative HTML version deleted]]
>>
>>
>> ______________________________________________
>> R-help_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>

        [[alternative HTML version deleted]]



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Thu 03 Jun 2010 - 23:28:32 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 04 Jun 2010 - 00:30:28 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive