[Rd] assign, documentation (PR#1434)

rgentlem@jimmy.harvard.edu rgentlem@jimmy.harvard.edu
Thu, 4 Apr 2002 17:53:20 +0200 (MET DST)


On Thu, Apr 04, 2002 at 05:37:18PM +0200, Peter Dalgaard BSA wrote:
> ripley@stats.ox.ac.uk writes:
> 
> > On Thu, 4 Apr 2002 Martin.Schlather@uni-bayreuth.de wrote:
> > 
> > > The help for `assign' says
> > >
> > >  In all the assignment operator expressions, `x' can be a name or
> > >  an expression defining a part of an object to be replaced (e.g.,
> > >  `z[[1]]').  The name does not need to be quoted, though it can be.
> > >
> > > So I would expect that by
> > >  a<-1:4
> > >  assign("a[1]",2)
> > > the first component of a gets the value 2, but the object "a[1]" is
> > > created.
> > > Could this be clarified in the documentation?
> > 
> > Could you suggest how?  You quoted an *expression*, and the page refers to
> > quoting a *name*, so I don't know that I see the crux here.
> 
> Actually, it *is* a name that is getting quoted, it just has these weird
> bracket characters in it, so it is not "syntactically valid". 
> 
> One improvement might be: "the name can be any string of text and may
> be quoted, but this is only necessary if it is not a syntactically
> valid name."
> 
  I think the original point was that he expected that a[1] would be
  changed not that a new variable named "a[1]" would be created. I
  don't think your suggestion will help with this. I think that Brian
  is correct, unless of course you want to spend some amount of time
  figuring out the logic/parsing requirements.

  "Assign treats the quoted string as a symbol, it does not parse it in
  any way", might help.  On the otherhand, in some large number of
  years this is the first person who has had this problem, I'm not
  sure we should be documenting for less than 1% of the population 
  unless of course,
    "we are trying to be as accurate as possible without regard to
  readability"  :-), to quote the views of a certain member of R core
  on documentation.




> We might also emphasize that "assignment operator expressions" does
> not include assign(), only <-, <<-, and =. (And _ until we finally get
> it killed...). On the other hand it is arguably clear enough already,
> if read carefully. (For this reason alone, the posters remark is off
> base, but he might have asked about "a[1]" <- 2.)
> 
> In assign(), `x' must be a character object. As in
> 
> > a <- "b"
> > assign(a,2)
> > a
> [1] "b"
> > b
> [1] 2
> 
> 
> -- 
>    O__  ---- Peter Dalgaard             Blegdamsvej 3  
>   c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
>  (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

-- 
+---------------------------------------------------------------------------+
| Robert Gentleman                 phone : (617) 632-5250                   |
| Associate Professor              fax:   (617)  632-2444                   |
| Department of Biostatistics      office: M1B28
| Harvard School of Public Health  email: rgentlem@jimmy.dfci.harvard.edu   |
+---------------------------------------------------------------------------+

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._