Re: [Rd] Argument recycling in substring()

From: Martin Maechler <>
Date: Fri, 04 Jun 2010 11:46:29 +0200

>>>>> "HP" == Hervé Pagès <> >>>>> 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:

    HP> Phone: (206) 667-5791
    HP> Fax: (206) 667-1319
    HP> ______________________________________________
    HP> mailing list     HP> mailing list Received on Fri 04 Jun 2010 - 09:53:25 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 Fri 04 Jun 2010 - 17:10:59 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive