[Rd] Argument recycling in substring()

Martin Maechler maechler at stat.math.ethz.ch
Fri Jun 4 11:46:29 CEST 2010

>>>>> "HP" == Hervé Pagès <hpages at fhcrc.org>
>>>>>     on Thu, 03 Jun 2010 17:53:33 -0700 writes:

    HP> Hi,
    HP> According to its man page substring() "expands (its) arguments
    HP> cyclically to the length of the longest _provided_ none are of
    HP> zero length".

    HP> So, as expected, I get an error here:

    >> substring("abcd", first=2L, last=integer(0))
    HP> Error in substring("abcd", first = 2L, last = integer(0)) :
    HP> invalid substring argument(s)

    HP> But I don't get one here:

    >> substring(character(0), first=1:2, last=3L)
    HP> character(0)

    HP> which is unexpected.
according to the docu.

My gut feeling would say that the documentation should be
updated in this case, rather than the implementation.

RFC! other opinions?

    HP> Otherwise, yes substring() will recycle its arguments to the
    HP> length of the longest:

    >> substring("abcd", first=1:3, last=4:3)
    HP> [1] "abcd" "bc"   "cd"

    HP> Cheers,
    HP> H.

    HP> -- 
    HP> Hervé Pagès

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

    HP> E-mail: hpages at fhcrc.org
    HP> Phone:  (206) 667-5791
    HP> Fax:    (206) 667-1319

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

More information about the R-devel mailing list