Berwin A Turlach wrote:
> G'day Wacek,
>
>
>   
>>> Or, in case that the extension has more than three letters or
>>> "myfile" is a vector of names:
>>>
>>> R> myfile <- "path1/path2/myoutput.txt"
>>> R> sapply(strsplit(basename(myfile),"\\."), function(x)
>>> R> paste(x[1:(length(x)-1)], collapse="."))
>>> [1] "myoutput"
>>> R> myfile2 <- c(myfile, "path2/path3/myoutput.temp")
>>> R> sapply(strsplit(basename(myfile2),"\\."), function(x)
>>> R> paste(x[1:(length(x)-1)], collapse="."))
>>> [1] "myoutput" "myoutput"
>>> R> myfile3 <- c(myfile2, "path4/path5/my.out.put.xls")
>>> R> sapply(strsplit(basename(myfile3),"\\."), function(x)
>>> R> paste(x[1:(length(x)-1)], collapse="."))
>>> [1] "myoutput"   "myoutput"   "my.out.put"
>>>
>>>   
>>>       
>> or have sub do the job for you:
>>
>> filenames.ext = c("foo.bar", basename("foo/bar/hello.dolly"))
>> (filenames.noext = sub("[.][^.]*$", "", filenames.ext, perl=TRUE))
>>     
>
>   

g'afternoon berwin,

> Apparently also a possibility, I guess it can be made to work with the
> original example and my extensions.
>   

i guess it does work with the original example and your extensions.

> Though, it seems to require the knowledge of perl, or at least perl's
> regular expression. 
>   

oh my, sorry.  it' so bad to go an inch out of the cosy world of r. 
but, as gabor pointed, 'perl=TRUE' is inessential here, so you actually
need to know just (very basic) regular expressions, with no 'perl'
implied.  having learnt this simple regex syntax you can avoid the need
for looking up strsplit and paste in tfm, so i'd consider it worthwhile.

vQ

______________________________________________
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