Skip to content
Back to formatted view

Raw Message

Message-ID: <4A1BF2AD.7040902@idi.ntnu.no>
Date: 2009-05-26T13:46:21Z
From: Wacek Kusnierczyk
Subject: split strings
In-Reply-To: <BAY130-W260FD8C24AA6B865027A0BC3520@phx.gbl>

Monica Pisica wrote:
> Hi everybody,
>  
> I have a vector of characters and i would like to extract certain parts. My vector is named metr_list:
>  
> [1] "F:/Naval_Live_Oaks/2005/data//BE.tif"  
> [2] "F:/Naval_Live_Oaks/2005/data//CH.tif"  
> [3] "F:/Naval_Live_Oaks/2005/data//CRR.tif" 
> [4] "F:/Naval_Live_Oaks/2005/data//HOME.tif"
>
> And i would like to extract BE, CH, CRR, and HOME in a different vector named "names.id" 

one way that seems reasonable is to use sub:

    output = sub('.*//(.*)[.]tif$', '\\1', input)

which says 'from each string remember the substring between the
rigthmost two slashes and a .tif extension, exclusive, and replace the
whole thing with the captured part'.  if the pattern does not match, you
get the original input:

    sub('.*//(.*)[.]tif$', '\\1', 'f:/foo/bar//buz.tif')
    # buz  

vQ