[R] Extract letters from a column

Marc Schwartz marc_schwartz at me.com
Wed Mar 13 15:44:00 CET 2013


This could be done in a single step using gsub() with back references in the regex. 

> gsub("^(.{3}).* (.{3}).*$", "\\1\\2", "Tom Cruise")
[1] "TomCru"

Regards,

Marc Schwartz


On Mar 13, 2013, at 9:21 AM, SH <emptican at gmail.com> wrote:

> What I want to do is to extrac three letters from first and last name
> and to combine them to make another column 'abb'.  The column 'abb' is
> to be a my final product.  I can make column 'abb' using 'paste'
> function once I have two parts from the first column 'name'.
> 
> Thanks,
> 
> Steve
> 
> On Wed, Mar 13, 2013 at 10:17 AM, Jorge I Velez
> <jorgeivanvelez at gmail.com> wrote:
>> Try
>> 
>> substr(tempdf$abb 4, 6)
>> 
>> --JIV
>> 
>> 
>> 
>> On Thu, Mar 14, 2013 at 1:15 AM, SH <emptican at gmail.com> wrote:
>>> 
>>> Dear Jorge,
>>> 
>>> I gave me this result (below) since it defines starting from the forth
>>> letter and ending 6th letter from the first element.
>>> 
>>>> substr(tempdf$name, 4, 6)
>>> [1] " Cr" "ad " "old"
>>> 
>>> I would like to have letters from first and second elements if possible.
>>> 
>>> Thanks for replying,
>>> 
>>> Steve
>>> 
>>> 
>>> On Wed, Mar 13, 2013 at 10:10 AM, Jorge I Velez
>>> <jorgeivanvelez at gmail.com> wrote:
>>>> Dear SH,
>>>> 
>>>> Hmmm... what about
>>>> 
>>>> substr(tempdf$name, 4, 6))
>>>> 
>>>> ?
>>>> 
>>>> HTH,
>>>> Jorge.-
>>>> 
>>>> 
>>>> On Thu, Mar 14, 2013 at 1:06 AM, SH <emptican at gmail.com> wrote:
>>>>> 
>>>>> Dear list:
>>>>> 
>>>>> I would like to extract three letters from first and second elements
>>>>> in one column and make a new column.
>>>>> 
>>>>> For example below,
>>>>> 
>>>>>> tempdf = read.table("clipboard", header=T, sep='\t')
>>>>>> tempdf
>>>>>              name var1 var2    abb
>>>>> 1      Tom Cruiser    1    6 TomCru
>>>>> 2       Bread Pett    2    5 BrePet
>>>>> 3 Arnold Schwiezer    3    7 ArnSch
>>>>>> (p1 = substr(tempdf$name, 1, 3))
>>>>> [1] "Tom" "Bre" "Arn"
>>>>> 
>>>>> I was able to extract three letters from first name, however, I don't
>>>>> know how to extract three letters from last name (i.e., 'Cru', 'Pet',
>>>>> and 'Sch').  Can anyone give me a suggestion?  Many thanks in advance.
>>>>> 
>>>>> Best,
>>>>> 
>>>>> Steve



More information about the R-help mailing list