[R] function runif in for loop

Duncan Murdoch murdoch.duncan at gmail.com
Wed Aug 10 20:02:50 CEST 2011


On 10/08/2011 1:16 PM, Bert Gunter wrote:
> Duncan et. al:
>
> Inline below.
>
> On Wed, Aug 10, 2011 at 9:48 AM, Duncan Murdoch
> <murdoch.duncan at gmail.com>  wrote:
> >  On 10/08/2011 9:40 AM, Johannes Radinger wrote:
> >>
> >>  Jean,
> >>
> >>  thank you for your answer.
> >>  especially the line X<- numeric(length(lT)) helped me a lot.
> >>
> >>  Anyway, in my case I'd like to get a "dynamic" variable or better a
> >>  function for X. I mean if i try to call X I'd like that this drawing of
> >>  random number is performed. In the case now if I call X several times I'll
> >>  always get the same random numbers.
> >
> >  Such things do exist in R, but they aren't easy to set up.
>
> Well, how about:
>
> Well... How about:
>
> X<- function()runif(1)
> class(X)<- c("wizz",class(X))
> print.wizz<- function(x){y<-x(); print(y);y }
>
> >  X
> [1] 0.875768
> >  X
> [1] 0.955208
> >  X
> [1] 0.1150938
> >  z<- X
> >  z
> [1] 0.3760085
> >  z<- X
> >  z
> [1] 0.1506062
> >

That sort of looks as if it works, but it doesn't:

   for (i in 1:3) {
      r <- X + 1
      print(r)
   }

Duncan Murdoch

> Cheers,
> Bert
>
>
>   Why not just
> >  make X be a function explicitly?  That is,
> >
> >  X<- function() runif(length(lT), lT, uT)
> >
> >  Then use X() to call the function where you were previously using X.
> >
> >  Duncan Murdoch
> >>
> >>  I thought about something like:
> >>  X<- for (i in 1:length(lT)) runif(1, lT[i], uT[i])
> >>
> >>  So that I can use X as a variable for multiple runs and
> >>  each run new random values are used.
> >>
> >>  thank you
> >>  Johannes
> >>
> >>  -------- Original-Nachricht --------
> >>  >    Datum: Wed, 10 Aug 2011 08:19:07 -0500
> >>  >    Von: Jean V Adams<jvadams at usgs.gov>
> >>  >    An: "Johannes Radinger"<JRadinger at gmx.at>
> >>  >    CC: r-help at r-project.org
> >>  >    Betreff: Re: [R] function runif in for loop
> >>
> >>  >    Johannes,
> >>  >
> >>  >    You have the loop set up right, you just need to add indexing to refer
> >>  >  to
> >>  >    the looping variable, i.
> >>  >
> >>  >    lT<- sample(1:10)
> >>  >    uT<- sample(21:30)
> >>  >    X<- numeric(length(lT))
> >>  >
> >>  >    for (i in 1:length(lT)) X[i]<- runif(1, lT[i], uT[i])
> >>  >
> >>  >    X
> >>  >
> >>  >    Note that I changed the name of the result from T to X, because T has
> >>  >    special meaning in R.
> >>  >
> >>  >    Jean
> >>  >
> >>  >    `·.,,><(((º>      `·.,,><(((º>      `·.,,><(((º>
> >>  >
> >>  >    Jean V. Adams
> >>  >    Statistician
> >>  >    U.S. Geological Survey
> >>  >    Great Lakes Science Center
> >>  >    223 East Steinfest Road
> >>  >    Antigo, WI 54409  USA
> >>  >
> >>  >
> >>  >
> >>  >    From:
> >>  >    "Johannes Radinger"<JRadinger at gmx.at>
> >>  >    To:
> >>  >    r-help at r-project.org
> >>  >    Date:
> >>  >    08/10/2011 07:23 AM
> >>  >    Subject:
> >>  >    [R] function runif in for loop
> >>  >    Sent by:
> >>  >    r-help-bounces at r-project.org
> >>  >
> >>  >
> >>  >
> >>  >    Hello,
> >>  >
> >>  >    I'd like to perform a regression using MCMCregress (MCMCpack).
> >>  >    One variable therefore should be a function rather than a variable:
> >>  >
> >>  >    I want to use X as an input and X should be defined as a random number
> >>  >    between to values. Therefore I want to use the function runif like:
> >>  >    X<-(1, Xa, Xb) but it seems that runif doesn't allow to use vectors.
> >>  >    So I think I've to calculate the new vector X by using a for loop.
> >>  >
> >>  >    I tried "for (i in 1:length(lT)) T<-runif(1,lT,uT)" but that doesn't
> >>  >  work.
> >>  >    What is the correct for-loop function to create this new
> >>  >  vector/variable?
> >>  >
> >>  >    Can I use that function then as an input for MCMCregress?
> >>  >
> >>  >    thank you
> >>  >
> >>  >    Johannes
> >>  >
> >>  >    --
> >>  >
> >>  >    ______________________________________________
> >>  >    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.
> >
> >  ______________________________________________
> >  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.
> >
>
>
>



More information about the R-help mailing list