Clearly you're right - and polite... as always

I asked the question because I wanted to avoid 'paste(x, collapse="/")' and 'do.call(file.path, as.list(x))' because it's less efficient than 'file.path()' and '?file.path()' explicitly recommends *not* using 'paste()' for putting together file paths.

On 28.06.2012 12:10, Prof Brian Ripley wrote:
On 28/06/2012 10:40, Janko Thyson wrote:
Dear list,

I have a small feature request regarding the implementation of
'file.path()':

Clearly you have not read where and how to make feature requests (R-devel list or Wishlist on bugs.r-project.org).

It'd be great if 'file.path()' would allow to specify an input *vector*
instead of solely rely on a specification via the three dot argument.

AFAIU, currently it's only possible to "manually" specify each path
component via the three dot argument:
 > file.path(letters[1], letters[2], letters[3])
[1] "a/b/c"

Providing a vector object will result in the same vector being returned,
instead of a slash separated scalar:
 > file.path(letters[1:3])
[1] "a" "b" "c"

It'd be great if the last call would have this result:
 > file.path(letters[1:3])
[1] "a/b/c"

If that's already possible, I'd appreciate a pointer. If not: thanks a
lot for considering this,

It's not going ever to be possible: it does what it is intended and documented to do with a single vector, and people rely on the existing behaviour. OTOH

paste(x, collapse="/")

does what you want (you could use .Platform$file.sep for maximal portability). Or you could use do.call(file.path, as.list(x))



Best regards,
Janko



______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to