Hi:

The deal with replicate() is that its second argument is a *function*; more
specifically, a function *call*. That's why Henrique's solution worked and
your attempt didn't. Inside replicate(), if the function has arguments, they
need to be supplied. This works:

testdat <- function(df, n) df[sample(nrow(df), n, replace = TRUE), ]      #
function definition
replicate(3, testdat(growth, 12), simplify = FALSE)
                   ^^^^^^^^^^^^^^^^^^^
                       function call

The argument simplify = FALSE means that replicate will not try to simplify
the output from the function.
I called your growth data fd, so

> replicate(3, testdat(fd, 12), simplify = FALSE)
[[1]]
    Age Length
7     4    399
8     1    120
6     5    453
1     2    200
2     5    450
5     8    798
9     2    202
2.1   5    450
7.1   4    399
6.1   5    453
7.2   4    399
6.2   5    453

[[2]]
    Age Length
9     2    202
5     8    798
6     5    453
9.1   2    202
9.2   2    202
5.1   8    798
3     6    600
1     2    200
8     1    120
2     5    450
5.2   8    798
9.3   2    202

[[3]]
    Age Length
3     6    600
3.1   6    600
9     2    202
7     4    399
5     8    798
1     2    200
4     7    702
6     5    453
5.1   8    798
5.2   8    798
2     5    450
9.1   2    202

The function is defined a little more generally so that you can control the
sample size.

HTH,
Dennis


On Wed, Sep 29, 2010 at 11:19 AM, Michael Larkin <mlar...@rsmas.miami.edu>wrote:

> I am trying to get R to resample my dataset of two columns of age and
> length
> data for fish.  I got it to work, but it is not resampling every replicate.
> Instead, it resamples my data once and then repeated it 5 times.
>
> Here is my dataset of 9 fish samples with an age and length for each one:
> Age     Length
> 2       200
> 5       450
> 6       600
> 7       702
> 8       798
> 5       453
> 4       399
> 1       120
> 2       202
>
>
> Here is my code which resamples my data to produce up to 9 different
> samples
> and creates a new dataset of 12 samples:
>
> testdat<-growth[sample(9,12,replace=T),]
>
>
> Now I want R to repeat this procedure 5 times. Here is my code:
>
>
> testdat2 <- replicate(5, sample(testdat), simplify=F)
> testdat2
>
> Here is my output showing that it did it once and then just repeated the
> values:
>
>
> > testdat2
> [[1]]
>    Age Length
> 1     2    200
> 9     2    202
> 8     1    120
> 5     8    798
> 4     7    702
> 6     5    453
> 1.1   2    200
> 4.1   7    702
> 4.2   7    702
> 5.1   8    798
> 4.3   7    702
> 6.1   5    453
>
> [[2]]
>    Age Length
> 1     2    200
> 9     2    202
> 8     1    120
> 5     8    798
> 4     7    702
> 6     5    453
> 1.1   2    200
> 4.1   7    702
> 4.2   7    702
> 5.1   8    798
> 4.3   7    702
> 6.1   5    453
>
> [[3]]
>    Age Length
> 1     2    200
> 9     2    202
> 8     1    120
> 5     8    798
> 4     7    702
> 6     5    453
> 1.1   2    200
> 4.1   7    702
> 4.2   7    702
> 5.1   8    798
> 4.3   7    702
> 6.1   5    453
>
> [[4]]
>    Length Age
> 1      200   2
> 9      202   2
> 8      120   1
> 5      798   8
> 4      702   7
> 6      453   5
> 1.1    200   2
> 4.1    702   7
> 4.2    702   7
> 5.1    798   8
> 4.3    702   7
> 6.1    453   5
>
> [[5]]
>    Length Age
> 1      200   2
> 9      202   2
> 8      120   1
> 5      798   8
> 4      702   7
> 6      453   5
> 1.1    200   2
> 4.1    702   7
> 4.2    702   7
> 5.1    798   8
> 4.3    702   7
> 6.1    453   5
>
>
> Any advice on how to get R to resample each time would be greatly
> appreciated?
>
> Mike
>
> ______________________________________________
> R-help@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@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.

Reply via email to