I do not want to access the slot itself but its content: a:toto would be a...@slot1[['toto']]. The thing is that I would like to have two different methods: '$' (that I already have) and another one to define, ideally that behaves like '$'.
So in brief:
- a:toto would be for a...@slot1[['toto']]
- a$tata would be for a...@slot2[['tata']]

But apparently it might not be possible.

--
Renaud Gaujoux
Computational Biology - University of Cape Town
South Africa


On 09/07/2010 14:58, Marc Schwartz wrote:
You were, in effect, trying to overload the ":" operator, which is of course 
for defining sequences.

If you are using S4 methods, what is wrong with using the default "@" as the 
extraction syntax (eg. a...@name) to get at slots?

See ?"@" and ?slot

HTH,

Marc Schwartz

On Jul 9, 2010, at 7:49 AM, Renaud Gaujoux wrote:

Alright.
Maybe the symbol I chose was not appropriate. I tried ':' to be able to do 
'a:name' with 'a' a S4 object.
I get the following error:
Error in genericForPrimitive(f) :
  methods may not be defined for primitive function ":" in this version of R

Does there exist any symbol that would be suitable for the job?
Thanks

--
Renaud Gaujoux
Computational Biology - University of Cape Town
South Africa


On 09/07/2010 14:29, Duncan Murdoch wrote:
On 09/07/2010 8:18 AM, Renaud Gaujoux wrote:
Hi,

is there a way to define a method say '$$' that would behave like '$' and allow 
calls like 'a$$name'?
No, the parser handles a fixed syntax, and that expression is not legal.  You 
could do it with

a %$$% name

using the infix operator syntax.  (I think the description in the R Language 
Definition suggests this is not legal, since $$ is not a valid name, but it 
does currently work and that's unlikely to change.)

Duncan Murdoch



###
UNIVERSITY OF CAPE TOWN
This e-mail is subject to the UCT ICT policies and e-mail disclaimer published 
on our website at http://www.uct.ac.za/about/policies/emaildisclaimer/ or 
obtainable from +27 21 650 4500. This e-mail is intended only for the person(s) 
to whom it is addressed. If the e-mail has reached you in error, please notify 
the author. If you are not the intended recipient of the e-mail you may not 
use, disclose, copy, redirect or print the content. If this e-mail is not 
related to the business of UCT it is sent by the sender in the sender's 
individual capacity.

###

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to