[R] function runif in for loop
Duncan Murdoch
murdoch.duncan at gmail.com
Wed Aug 10 18:48:41 CEST 2011
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. 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.
More information about the R-help
mailing list