[R] Alternatives to unlist()
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri May 4 19:56:12 CEST 2007
First, your example works happily in a 1Gb Windows machine under R 2.5.0:
your R (2.2.1) is well overdue for an update.
What you are generating is a random number of rexp(rate=10) random
variables. So all you need is
n <- 1000000
N <- sum (rpois(n, 26))
vv <- rexp(N, 10)
mean(vv[vv < 0.1])
which runs is ca 500Mb and 6 secs.
On Fri, 4 May 2007, Jacques Wagnor wrote:
> Given the following, one of the things I am trying to see is what % of
> draws are below a certain number:
>
> lambda <- 3
> rate <- 5
> n <- 5
>
> set.seed(123)
> v <- replicate(n, rexp(rpois(1,lambda), rate))
> vv <- unlist(v)
> cat("% of draws below 0.1:", round(length(subset(vv, vv <
> 0.1))/length(vv)*100,0), "%\n")
>
> In actuality, my lambda, rate, and n are 26, 10, 1000000,
> respectively; which in effect makes the length of vv roughly equal
> 26'000'000.
> When I run cat(...), I get the following:
>
> Error: cannot allocate vector of size 101540 Kb
> In addition: Warning messages:
> 1: Reached total allocation of 1015Mb: see help(memory.size)
> 2: Reached total allocation of 1015Mb: see help(memory.size)
>
> Rather than keep the code as is and resort to memory.limit(), I would
> like to see how the code can be modified (i.e., alternatives to
> unlist()) such that I could still see what % of draws are below a
> certain number.
>
> I'd appreciate any suggestions.
>
> Regards,
>
> platform i386-pc-mingw32
> arch i386
> os mingw32
> system i386, mingw32
> status
> major 2
> minor 2.1
> year 2005
> month 12
> day 20
> svn rev 36812
> language R
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list