From simon.urbanek at r-project.org  Fri Apr  8 22:05:25 2011
From: simon.urbanek at r-project.org (Simon Urbanek)
Date: Fri, 8 Apr 2011 16:05:25 -0400
Subject: [Rd] question about assignment warnings for replacement methods
In-Reply-To: <4D9F5A3E.7030305@fhcrc.org>
References: <4D9B56AB.2020403@fhcrc.org> <4D9B5C5B.2020209@gmail.com>
	<4D9F5A3E.7030305@fhcrc.org>
Message-ID: <A47FDE88-AC38-4CFC-B588-204F61283ABC@r-project.org>


On Apr 8, 2011, at 2:55 PM, Herv? Pag?s wrote:

> Hi Duncan, Marc,
> 
> On 11-04-05 11:15 AM, Duncan Murdoch wrote:
>> On 05/04/2011 1:51 PM, Marc Carlson wrote:
>>> Hi,
>>> 
>>> I have seen several packages that with the most recent version of R are
>>> giving a warning like this:
>>> 
>>> Assignments in \usage in documentation object 'marginalData-methods':
>>> marginalData(object) = value
>>> 
>>> I assume that this is to prevent people from making assignments in their
>>> usage statements (which seems completely understandable). But what
>>> about the case above? This is a person who just wants to show the
>>> proper usage for a replacement method. IOW they just want to write
>>> something that looks like what you actually do when you use a
>>> replacement method. They just want to show users how to do something
>>> like this:
>>> 
>>> replacementMethod(object)<- newValue
>>> 
>>> 
>>> So is that really something that should not be allowed in a usage
>>> statement?
>> 
>> If replacementMethod was a replacement function, then
>> 
>> replacementMethod(object)<- newValue
>> 
>> is supposed to be fine.
> 
> Yes, 'replacementMethod(object) <- newValue' vorks indeed, but
> not 'replacementMethod(object) = newValue'.
> 
>> But if it is an S3 method, it should be
>> 
>> \method{replacementMethod}{class}(object)<- newValue
>> 
>> and if it is an S4 method I think it should be
>> 
>> \S4method{replacementMethod}{signature_list}(object)<- newValue
> 
> In the case reported by Marc, replacementMethod was both: a
> replacement (generic) function and a replacement method. And the
> man page had an alias for both. Marc replaced
> 
>  replacementMethod(object) = newValue
> 
> with
> 
>  \S4method{replacementMethod}{signature_list}(object)<- newValue
> 
> and that solved the problem. But replacing '=' with '<-' solves it too.
> 
> Shouldn't 'R CMD check' treat the 2 assignment operators the same way
> since they are equivalent?
> 

They are not equivalent (you can't use = in many places where you can use <-).

Also my understanding is that it is considered bad practice by some to use = as assignment outside of the command prompt (interactive use) -- but opinions vary and I don't want to start a flame war here ;).

Cheers,
Simon



> Thanks!
> H.
> 
>> 
>> (though the manual suggests using the S3 style, I'm not sure how
>> literally to take it).
>> 
>> Duncan Murdoch
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> 
> -- 
> Herv? Pag?s
> 
> Program in Computational Biology
> Division of Public Health Sciences
> Fred Hutchinson Cancer Research Center
> 1100 Fairview Ave. N, M2-B876
> P.O. Box 19024
> Seattle, WA 98109-1024
> 
> E-mail: hpages at fhcrc.org
> Phone:  (206) 667-5791
> Fax:    (206) 667-1319
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> 



[Rd] question about assignment warnings for replacement methods
Simon Urbanek