[R] strsplit with a vector split argument

Marc Schwartz marc_schwartz at me.com
Wed Sep 18 17:49:43 CEST 2013


On Sep 18, 2013, at 10:42 AM, Sam Steingold <sds at gnu.org> wrote:

> Hi,
> I find this behavior unexpected:
> --8<---------------cut here---------------start------------->8---
>> strsplit(c("a,b;c","d;e,f"),c(",",";"))
> [[1]]
> [1] "a"   "b;c"
> 
> [[2]]
> [1] "d"   "e,f"
> --8<---------------cut here---------------end--------------->8---
> I thought that it should be identical to this:
> --8<---------------cut here---------------start------------->8---
>> strsplit(c("a,b;c","d;e,f"),"[,;]")
> [[1]]
> [1] "a" "b" "c"
> 
> [[2]]
> [1] "d" "e" "f"
> --8<---------------cut here---------------end--------------->8---
> Is this a bug or did I misunderstand the docs?
> Thanks!


The latter. From ?strplit in the description of 'split':

  If split has length greater than 1, it is re-cycled along x.

Thus, in the first example above, ',' is used for the first element of your vector and ';' is used for the second and so on.

Regards,

Marc Schwartz



More information about the R-help mailing list