[R] Confusing piece of R code
Sarah Goslee
sarah.goslee at gmail.com
Sat Jul 9 23:17:19 CEST 2011
The neat thing about R is that it's interpreted, so you can look for yourself.
On Sat, Jul 9, 2011 at 3:46 PM, Bazman76 <h_a_patience at hotmail.com> wrote:
> m0<-epxression((4*theta1*theta2-theta3^2)/(2*x*theta3^2)-0.5*theta1*x)
>
> params<-all.vars(m0) this reads all the params
> from m0 so theta1,2 and 3 correct?
> m0<-expression((4*theta1*theta2-theta3^2)/(2*x*theta3^2)-0.5*theta1*x)
> params<-all.vars(m0)
> params
[1] "theta1" "theta2" "theta3" "x"
So no, not just the thetas but also x
> params<-params[-which(params=="x")] checks which params are multiplied
> by x?
> params<-params[-which(params=="x")]
> params
[1] "theta1" "theta2" "theta3"
Nope, see that it takes out the params that are not equal to x. You
could look at, for instance ?which to figure that out, and also ?"=="
> np<-length(params)
>
> for(i in 1:6){
> esp<-get(sprintf("m%d",i-1)) what does get do? sprinf
> formats strings? so what is it doinf here?
Again, you can try it.
> i <- 1
> sprintf("m%d",i-1)
[1] "m0"
So it's taking the value of i, and combining it with some other things
to make a character name. get() will get the R object with that name
and assign it to esp
?get will tell you that.
> assign(sprintf("m%d",i),D(esp,"x")) what doeas assign so what in
> sprintf doing and what does D do?
> }
Same thing in reverse. I'll leave this one as an exercise for the querent.
Sarah
> really really confused?
Learning to try things and to read the help are the only cure.
Sarah
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-help
mailing list