Duncan:

Yup, you're right. Can't assign, just print.

-- Bert

On Wed, Aug 10, 2011 at 11:02 AM, Duncan Murdoch
<[email protected]> wrote:
> 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
>> <[email protected]>  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<[email protected]>
>> >>  >    An: "Johannes Radinger"<[email protected]>
>> >>  >    CC: [email protected]
>> >>  >    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"<[email protected]>
>> >>  >    To:
>> >>  >    [email protected]
>> >>  >    Date:
>> >>  >    08/10/2011 07:23 AM
>> >>  >    Subject:
>> >>  >    [R] function runif in for loop
>> >>  >    Sent by:
>> >>  >    [email protected]
>> >>  >
>> >>  >
>> >>  >
>> >>  >    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
>> >>  >
>> >>  >    --
>> >>  >
>> >>  >    ______________________________________________
>> >>  >    [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.
>> >>  >
>> >>  >
>> >>
>> >>  --
>> >>
>> >>  ______________________________________________
>> >>  [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.
>> >
>> >  ______________________________________________
>> >  [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.
>> >
>>
>>
>>
>
>



-- 
"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
467-7374
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm

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

Reply via email to