[R] Feature request: 'file.path()' accepting an input vector

Janko Thyson janko.thyson.rstuff at googlemail.com
Thu Jun 28 12:23:02 CEST 2012


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
>
>



More information about the R-help mailing list