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

Gabor Grothendieck ggrothendieck at gmail.com
Mon Oct 19 22:14:57 CEST 2009


Here are several ways to find the last character in a string:

> x <- "abc"

> substring(x, nchar(x))
[1] "c"

> sub(".*(.)", "\\1", x)
[1] "c"

> library(gsubfn)
> strapply(x, ".$")[[1]]
[1] "c"

On Mon, Oct 19, 2009 at 3:52 PM, Jason Rupert <jasonkrupert at yahoo.com> wrote:
> 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", by.y="Year")




More information about the R-help mailing list