Last chance! 50% off unlimited learning
Sale ends in
rpoint(n, f, fmax=NULL, win=unit.square(), ..., giveup=1000, verbose=FALSE, nsim=1, drop=TRUE)
f(x,y,...)
, or a pixel image object.
f
.
If missing, this number will be estimated.
f
is a pixel image.
f
.
nsim=1
and drop=TRUE
(the default), the
result will be a point pattern, rather than a list
containing a point pattern.
"ppp"
)
if nsim=1
, or a list of point patterns if nsim > 1
.
n
independent, identically distributed
random points with common probability density proportional to
f
. The argument f
may be
The algorithm is as follows:
f
is a constant, we invoke runifpoint
.
f
is a function, then we use the rejection method.
Proposal points are generated from the uniform distribution.
A proposal point $(x,y)$ is accepted with probability
f(x,y,...)/fmax
and otherwise rejected.
The algorithm continues until n
points have been
accepted. It gives up after giveup * n
proposals
if there are still fewer than n
points.
f
is a pixel image, then a random sequence of
pixels is selected (using sample
)
with probabilities proportional to the
pixel values of f
. Then for each pixel in the sequence
we generate a uniformly distributed random point in that pixel.
The algorithm for pixel images is more efficient than that for functions.
ppp.object
,
owin.object
,
runifpoint
# 100 uniform random points in the unit square
X <- rpoint(100)
# 100 random points with probability density proportional to x^2 + y^2
X <- rpoint(100, function(x,y) { x^2 + y^2}, 1)
# `fmax' may be omitted
X <- rpoint(100, function(x,y) { x^2 + y^2})
# irregular window
data(letterR)
X <- rpoint(100, function(x,y) { x^2 + y^2}, win=letterR)
# make a pixel image
Z <- setcov(letterR)
# 100 points with density proportional to pixel values
X <- rpoint(100, Z)
Run the code above in your browser using DataLab