On 12/13/2013 01:07 AM, Hervé Pagès wrote:
Hi,

In R < 3.0.0, we used to get:

   > substring(c(A="abcdefghij", B="123456789"), 2, 6:2)
         A       B       A       B       A
   "bcdef"  "2345"   "bcd"    "23"     "b"

But in R >= 3.0.0, we get:

   > substring(c(A="abcdefghij", B="123456789"), 2, 6:2)
   [1] "bcdef" "2345"  "bcd"   "23"    "b"

The names are not propagated anymore.

Looks like a regression introduced at commit 59891 where many functions
were modified to use rep_len() instead of rep() internally. Problem is,
unlike rep(), rep_len() does not propagate the names. Given the number
of files that were touched by this commit, a lot of functions could be
affected. For example complex():

  In R < 3.0.0:

    > complex(modulus=c(a=-1, b=0.77))
           a        b
    -1.00+0i  0.77+0i

  But in R >= 3.0.0:

    > complex(modulus=c(a=-1, b=0.77))
    [1] -1.00+0i  0.77+0i

etc...

Cheers,
H.


Is this an intended change or a bug? I can't find anything about
this in the NEWS file. The man page for substring() in R >= 3.0.0
still states:

   Value:

      ...

      For ‘substring’, a character vector of length the longest of the
      arguments.  This will have names taken from ‘x’ (if it has any
      after coercion, repeated as needed), and other attributes copied
      from ‘x’ if it is the longest of the arguments).

Also note that the first argument of substring() is 'text' not 'x'.

Thanks,
H.


--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

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

Reply via email to