[R] function runif in for loop

Bert Gunter gunter.berton at gene.com
Wed Aug 10 19:16:25 CEST 2011


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
>

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.
>



-- 
"Men by nature long to get on to the ultimate truths, and will often
be impatient with elementary studies or fight shy of them. If it were
possible to reach the ultimate truths without the elementary studies
usually prefixed to them, these would not be preparatory studies but
superfluous diversions."

-- Maimonides (1135-1204)

Bert Gunter
Genentech Nonclinical Biostatistics



More information about the R-help mailing list