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.