# Re: [R] bootstrap data from groups

From: Ulrich Keller <uhkeller_at_web.de>
Date: Thu 08 Jun 2006 - 04:55:11 EST

I am not sure I understand what you want to do, but maybe some of this will be helpful. I first generate some data that should resemble yours:

dat<-expand.grid(Region=1:3, Species=1:4, Sex=c("M","F")) dat<-do.call("rbind",lapply(1:10,function(x) dat)) dat\$Bodysize<-rnorm(nrow(dat),10,2)

Now what the following piece of code does is this: it samples 4 of the 10 individuals in each of the 24 subsets (region*species*sex) and creates a new data frame with 96 cases. It then computes the mean of bodysize in each of the subsets. The whole thing is done 100 times, the results are put in a data frame. We end up with 100 bootstrapped means for the 24 subsets.

groupmeans<-sapply(1:100, function(z) {
dat.rs<-do.call("rbind",
lapply(split(dat,list(dat\$Region,dat\$Species,dat\$Sex)),       function(x) x[sample(10, 4, replace=TRUE),]))   aggregate(dat.rs\$Bodysize,
list(dat.rs\$Region,dat.rs\$Species,dat.rs\$Sex),     mean)\$x
}
)
tmp<-aggregate(dat\$Bodysize,
list(dat\$Region,dat\$Species,dat\$Sex),mean) rownames(groupmeans)<-apply(tmp[,1:3],1,paste,collapse="")

Now we can compute the mean and sd of the means by group:

> apply(groupmeans,1,mean)

```      11M       21M       31M       12M       22M       32M
13M       23M
```

9.353095 9.267570 9.907933 10.992796 9.575841 10.412816 9.646964 9.433724
```      33M       14M       24M       34M       11F       21F
31F       12F
```

10.750797 9.083630 10.573421 9.615743 10.267587 10.231126 9.329375 10.799071
```      22F       32F       13F       23F       33F       14F
24F       34F
```

9.355510 10.555705 9.919161 10.277103 9.335649 9.339544 10.023688 9.755115
> apply(groupmeans,1,sd)
```      11M       21M       31M       12M       22M       32M
13M       23M
```

0.7720758 1.5301540 1.0973516 0.8970237 1.0492995 0.9460970 0.5362957 1.1106675
```      33M       14M       24M       34M       11F       21F
31F       12F
```

0.5333081 0.9259341 0.8198624 0.8061832 0.8466780 0.7052473 0.9857680 1.1057607
```      22F       32F       13F       23F       33F       14F
24F       34F
```

0.8272433 1.2614559 1.2377154 1.0958545 0.9213648 0.9985215 1.1131870 1.0572494

Milton Cezar schrieb:
> Hi R-friends.
>
> I have a mammal´s dataset looking like:
>
> Region Species Sex Bodysize
> 1 Sp1 M 10.2
> 1 Sp1 M 12.1
> 1 Sp1 M 9.1
> ...
>
> I have three regions, four species and the body size of 10 individual. I´d like to do a bootstrap resample (100 resamples) of 4 of 10 individuals for each Region, Species and Sex and compute de means and S.D. for the combinations Regions-Species-Sex.
>
> How can I do that?
>
> Thanks a lot,
>
> Miltinho

```>

>  __________________________________________________

>
>

> 	[[alternative HTML version deleted]]

>
```

>
> ------------------------------------------------------------------------
```>

> ______________________________________________
```
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help