Re: [Rd] question about assignment warnings for replacement methods

From: Simon Urbanek <simon.urbanek_at_r-project.org>
Date: Fri, 08 Apr 2011 16:05:25 -0400

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
>
>


R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri 08 Apr 2011 - 20:09:41 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 11 Apr 2011 - 00:10:59 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive