On 18-Jun-10 08:04:36, Ron Michael wrote:
> Hi, I would like to draw 10 uniformly distributed sample points from a
> circle with redius one and centered at (0,0). Is there any R function
> to do that?
> _
> Thanks,
You can quite easily write one.
[A]
Sampling uniformly on the circumference of the circle:
csamp <- function(n,rad=1,centre=c(0,0)){
x0 <- centre[1] ; y0 <- centre[2]
u <- 2*pi*runif(n)
rad*cbind(x=cos(u)+x0, y=sin(u)+y0)
}
# Returns an nx2 matrix whose two columns are the x and y coordinates
[B]
Sampling uniformaly within the circle
Csamp <- function(n,rad=1,centre=c(0,0)){
x0 <- centre[1] ; y0 <- centre[2]
u <- 2*pi*runif(n)
r <- sqrt(runif(n))
rad*cbind(x=r*cos(u)+x0, y=r*sin(u)+y0)
}
# Returns an nx2 matrix whose two columns are the x and y coordinates
[C]
Examples:
plot(csamp(100),asp=1)
plot(Csamp(1000),asp=1)
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <[email protected]>
Fax-to-email: +44 (0)870 094 0861
Date: 18-Jun-10 Time: 10:33:00
------------------------------ XFMail ------------------------------
______________________________________________
[email protected] 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.