Re: [R] proto and get()
In further offline discussion with the poster it was explained that the purpose of this is to display the icon object and not to return an instantiatedProtoMethod which was what the code was attempting to do. That is in proto, g$icon is not the icon object. It is the icon method instantiated with the g object, essentially a currying operation in which the object is plugged into the first arguement of icon and the resulting function (no longer a method since its now been instantiated) returned. To get what the poster desires, namely the icon object itself, one would do this instead of g$icon: with(g, icon) On Thu, Oct 8, 2009 at 7:44 PM, Gabor Grothendieck ggrothendi...@gmail.com wrote: This may be a bug in objects of class instantiatedProtoMethod. I tried it with the devel version of proto and got no error so you could try that. I will send it to you offline for your try. On Thu, Oct 8, 2009 at 1:02 PM, baptiste auguie baptiste.aug...@googlemail.com wrote: Dear all, In mucking around with ggplot2, I've hit the following snag, library(ggplot2) # this returns a grob, OK GeomAbline$icon() # lines[GRID.lines.9] # this returns the function icon, OK GeomAbline$icon # proto method (instantiated with ): function (.) # linesGrob(c(0, 1), c(0.2, 0.8)) # environment: 0x13e6800 Now I want to wrap this in a function, getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon() } getIcon(abline) # still OK # lines[GRID.lines.10] but ... getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon } getIcon(abline) # proto method (instantiated with ): # Error in get(icon, env = g, inherits = TRUE) : object 'g' not found So, it seems that I'm being too naive about using get on a proto object or something along those lines. I'd be grateful if proto experts could help me extract the icon function from this object. Best regards, baptiste __ R-help@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@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] proto and get()
Dear all, In mucking around with ggplot2, I've hit the following snag, library(ggplot2) # this returns a grob, OK GeomAbline$icon() # lines[GRID.lines.9] # this returns the function icon, OK GeomAbline$icon # proto method (instantiated with ): function (.) # linesGrob(c(0, 1), c(0.2, 0.8)) # environment: 0x13e6800 Now I want to wrap this in a function, getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon() } getIcon(abline) # still OK # lines[GRID.lines.10] but ... getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon } getIcon(abline) # proto method (instantiated with ): # Error in get(icon, env = g, inherits = TRUE) : object 'g' not found So, it seems that I'm being too naive about using get on a proto object or something along those lines. I'd be grateful if proto experts could help me extract the icon function from this object. Best regards, baptiste __ R-help@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.
Re: [R] proto and get()
... without answering my previous question, I have just found a fortune-hate workaround, getIcon - function(geom){ st - paste(Geom, firstUpper(geom),$icon, sep=) eval(parse(text=st)) } getIcon(abline) I'm still curious about the get() behaviour though. Best, baptiste __ R-help@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.
Re: [R] proto and get()
This may be a bug in objects of class instantiatedProtoMethod. I tried it with the devel version of proto and got no error so you could try that. I will send it to you offline for your try. On Thu, Oct 8, 2009 at 1:02 PM, baptiste auguie baptiste.aug...@googlemail.com wrote: Dear all, In mucking around with ggplot2, I've hit the following snag, library(ggplot2) # this returns a grob, OK GeomAbline$icon() # lines[GRID.lines.9] # this returns the function icon, OK GeomAbline$icon # proto method (instantiated with ): function (.) # linesGrob(c(0, 1), c(0.2, 0.8)) # environment: 0x13e6800 Now I want to wrap this in a function, getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon() } getIcon(abline) # still OK # lines[GRID.lines.10] but ... getIcon - function(geom){ st - paste(Geom, firstUpper(geom), sep=) g - get(st, 2) g$icon } getIcon(abline) # proto method (instantiated with ): # Error in get(icon, env = g, inherits = TRUE) : object 'g' not found So, it seems that I'm being too naive about using get on a proto object or something along those lines. I'd be grateful if proto experts could help me extract the icon function from this object. Best regards, baptiste __ R-help@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@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.