Re: [R] [OOPS] Re: Drawing sample from a circle

From: R Heberto Ghezzo, Dr <heberto.ghezzo_at_mcgill.ca>
Date: Mon, 21 Jun 2010 08:45:42 -0400

Sorry Ted
The code for the circle is in error, the radius distribution should be proportional to the circle area not uniform. Better / simple to sample from the (-1,1) square uniformly and reject where x^2+y^2 > 1 Heberto



From: r-help-bounces_at_r-project.org [r-help-bounces_at_r-project.org] On Behalf Of Ted Harding [Ted.Harding_at_manchester.ac.uk] Sent: Friday, June 18, 2010 5:48 AM
To: r-help_at_stat.math.ethz.ch
Subject: [R] [OOPS] Re: Drawing sample from a circle

OOPS: AN error on the code below! See in-line. Ted.

On 18-Jun-10 09:33:04, Ted Harding wrote:
> 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
CORRECTION:   csamp <- function(n,rad=1,centre=c(0,0)){     x0 <- centre[1] ; y0 <- centre[2]
    u <- 2*pi*runif(n)
    cbind(x=rad*cos(u)+x0, y=rad*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
CORRECTION:   Csamp <- function(n,rad=1,centre=c(0,0)){     x0 <- centre[1] ; y0 <- centre[2]
    u <- 2*pi*runif(n)
    r <- sqrt(runif(n))
    cbind(x=rad*r*cos(u)+x0, y=rad*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) <Ted.Harding_at_manchester.ac.uk>
> Fax-to-email: +44 (0)870 094 0861
> Date: 18-Jun-10 Time: 10:33:00
> ------------------------------ XFMail ------------------------------
>
> ______________________________________________
> R-help_at_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.



E-Mail: (Ted Harding) <Ted.Harding_at_manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861
Date: 18-Jun-10                                       Time: 10:48:14
------------------------------ XFMail ------------------------------

______________________________________________
R-help_at_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.

R-help_at_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. Received on Mon 21 Jun 2010 - 12:53:47 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 21 Jun 2010 - 13:30:34 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive