Hi, According to its man page substring() "expands (its) arguments cyclically to the length of the longest _provided_ none are of zero length". So, as expected, I get an error here: > substring("abcd", first=2L, last=integer(0)) Error in substring("abcd", first = 2L, last = integer(0)) : invalid substring argument(s) But I don't get one here: > substring(character(0), first=1:2, last=3L) character(0) which is unexpected. Otherwise, yes substring() will recycle its arguments to the length of the longest: > substring("abcd", first=1:3, last=4:3) [1] "abcd" "bc" "cd" Cheers, H. -- 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
>>>>> "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
> According to its man page substring() "expands (its) arguments > cyclically to the length of the longest _provided_ none are of > zero length". > > So, as expected, I get an error here: > > ?> substring("abcd", first=2L, last=integer(0)) > ?Error in substring("abcd", first = 2L, last = integer(0)) : > ? ?invalid substring argument(s) > > But I don't get one here: > > ?> substring(character(0), first=1:2, last=3L) > ?character(0) > > which is unexpected.If you want a set of string functions that strive to be simple and consistent you might want to look at the stringr package. And since it's a new package, I'm very keen to remove any inconsistencies. Hadley -- Assistant Professor / Dobelman Family Junior Chair Department of Statistics / Rice University http://had.co.nz/