Skip to content

Confusing piece of R code

4 messages · Bazman76, Brad Patrick Schneid, Sarah Goslee

#
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?
params<-params[-which(params=="x")]      checks which params are multiplied
by x?
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?
assign(sprintf("m%d",i),D(esp,"x"))             what doeas assign so what in
sprintf doing and what does D do?
}

really really confused?

--
View this message in context: http://r.789695.n4.nabble.com/Confusing-piece-of-R-code-tp3656660p3656660.html
Sent from the R help mailing list archive at Nabble.com.
#
Have you looked at the manual for any of these? 

?get
?sprintf
?assign 
#and so on...




?
Bazman76 wrote:
--
View this message in context: http://r.789695.n4.nabble.com/Confusing-piece-of-R-code-tp3656660p3656824.html
Sent from the R help mailing list archive at Nabble.com.
#
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:
[1] "theta1" "theta2" "theta3" "x"

So no, not just the thetas but also x
[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 ?"=="
Again, you can try it.
[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.
Same thing in reverse. I'll leave this one as an exercise for the querent.

Sarah
Learning to try things and to read the help are the only cure.

Sarah