[R] sub using info from pattern in 2nd col into part of pattern in 1st column?

Chuck Carey ccarey at fhcrc.org
Fri Aug 28 22:43:55 CEST 2009


I have two data.frame columns and I want to replace part of the first 
column with the second column :

temp<-data.frame(matrix(c("54E5","7","56D7","E3","56F12","14","56F3","10","57C5",NA,"59A1","3"), 
ncol = 2))

if the 2nd column consists entirely of digits (1 or 2 digits)

I want to replace the last digit(s) in the first column with the digits 
in the second column

so ...

54E5    7
56D7    E3
56F12  14
56F3    10
57C5    NA
59A1    3

generates a new column where some values are replaced :

54E7
56D7
56F14
56F10
57C5
59A3

I can pick out the digits in the 2nd column just fine.

But instead of 'xxx' below:

sub("^([0-9]{1,2})$","xxx\\1",temp$X2, perl = TRUE)

? How can I sub with what I want from the first column ?

Thanks for your help!

-chuck

(Actually, I also want to do a similar thing where E3 in the second row 
replaces D7 so 56D7 becomes 56E3, pattern of first column is always 
[0-9]{1,2}[A-F][0-9]{1,2} , but I'd be happy to just deal with the 
original stated problem for now as it handles most of my cases)




More information about the R-help mailing list