On 18/12/2019 9:42 a.m., IAGO GINÉ VÁZQUEZ wrote:
Hi all,

In the help of strsplit one can read

split   character vector (or object which can be coerced to such) containing regular 
expression<http://127.0.0.1:39783/help/library/base/help/regular%20expression>(s)
 (unless fixed = TRUE) to use for splitting. If empty matches occur, in particular if 
split has length 0, x is split into single characters. Ifsplit has length greater 
than 1, it is re-cycled along x.

Taking into account that split is said to be a vector (not a length 1 vector) 
and the last claim above, I would expect that the output of


strsplit("3:4", split = c(",",":"), fixed = TRUE)

was the same than the output of

strsplit("3:4", split = c(":"), fixed = TRUE)

that is, splitting by "," (without effect in this example) and also by ":"

[[1]]
[1] "3" "4"

But, instead, I get
[[1]]
[1] "3:4"

Am I wrongly understanding the help? Is it an expected output?
I tried with R 3.6.1 for Windows (10).

Yes, you are misunderstanding the help. Your input x has length 1, so only the first element of split will be used. If you wanted to use both, you would need a longer x. For example,

> strsplit(c("1:2", "3:4"), split=c(",", ":"), fixed=TRUE)
[[1]]
[1] "1:2"

[[2]]
[1] "3" "4"

The first element is split using "," -- since there are none, there's no splitting done. The second element is split using ":".

Duncan Murdoch

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

Reply via email to