[R] Using grep to determine value of last letter...

Bert Gunter gunter.berton at gene.com
Mon Oct 19 22:11:41 CEST 2009

Well, regexpr() can do it; the magical incantation is 


See ?regexpr for details.

However, as your task really doesn't involve MATCHING characters, but
COUNTING characters, it might be simpler to use nchar() and substr():

n <- nchar(yourstring)
lastLetter <- substr(yourstring, n, n)

Bert Gunter
Genentech Nonclinical Biostatistics

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Jason Rupert
Sent: Monday, October 19, 2009 12:52 PM
To: R-help at r-project.org
Subject: [R] Using grep to determine value of last letter...

I am currently being defeated by grep.  I am attempting to determine the
value of the last letter of a character string.  

An example of my data set is shown below.  Regarding the codes, I would like
to identify the value of the last character and then take the appropriate
action, e.g. 
If the value is L then label UL rating XXX
It the value is F then label UL rating YYY

I assume it will be something like the following:
grep("last letter",  HousesWithCodes$Codes) 

Thanks again for any insights. 

BuildYear<-c(1980, 1985, 1975, 1990, 1980)
SqrFootage<-c(1500, 1650, 1500, 2000, 1450)
Exterior<-c("Brick", "Stone", "Siding", "Brick", "Siding")

SubdivisionHouses<-data.frame(BuildYear, SqrFootage, Exterior)

Year<-c(1980, 1985, 1975, 1990, 1977, 1986)
Codes<-c("G2G1L", "G5L1F", "K1Y2G", "G4B1B", "K1N3B", "K3M4X")
BuildingCodes<-data.frame(Year, Codes)

HousesWithCodes<-merge(SubdivisionHouses, BuildingCodes, by.x="BuildYear",

R-help at r-project.org mailing list
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list