I want to extract the last 3 letters of a string. So far, I've done this:> symbol = 'XYZ.VX" > substr(symbol,nchar(symbol)-2,nchar(symbol))[1] ".VX" It works, but the code looks UGLY as hell. Am I missing something? Or is this the way it's supposed to be? Thanks, Sergio On 10/15/07, pintinho <diego at bpgomes.com> wrote:> > Hi everyone, > > When I try to import data do R, the following message appears: "\Uxxxxxxxx > sequences are not supported on Windows". > > I tried lots of methods to import (read.csv, read.table, RODBC, read.delim) > and the same message appears for all these methods. I think it is a bigger > problem. > > Can anyone help me solving this issue? > > Thanks a lot. > > > > -- > View this message in context: http://www.nabble.com/ERROR-while-importing-data-tf4628752.html#a13216707 > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Here is an alternative: sub(".*(..)$", "\\1", x) and using strapply in gsubfn its even shorter: library(gsubfn) strapply(x, "..$") On 10/15/07, Sergio Correia <sergio.correia at gmail.com> wrote:> I want to extract the last 3 letters of a string. > > So far, I've done this: > > > symbol = 'XYZ.VX" > > substr(symbol,nchar(symbol)-2,nchar(symbol)) > [1] ".VX" > > It works, but the code looks UGLY as hell. Am I missing something? Or > is this the way it's supposed to be? > > Thanks, > Sergio > > On 10/15/07, pintinho <diego at bpgomes.com> wrote: > > > > Hi everyone, > > > > When I try to import data do R, the following message appears: "\Uxxxxxxxx > > sequences are not supported on Windows". > > > > I tried lots of methods to import (read.csv, read.table, RODBC, read.delim) > > and the same message appears for all these methods. I think it is a bigger > > problem. > > > > Can anyone help me solving this issue? > > > > Thanks a lot. > > > > > > > > -- > > View this message in context: http://www.nabble.com/ERROR-while-importing-data-tf4628752.html#a13216707 > > Sent from the R help mailing list archive at Nabble.com. > > > > ______________________________________________ > > R-help at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Looks fine by me. There are lots of other ways of doing it. Does this look any nicer?> x <- c('asdfghk', 'qwerrey') > gsub(".*(...)$", '\\1', x)[1] "ghk" "rey">On 10/15/07, Sergio Correia <sergio.correia at gmail.com> wrote:> I want to extract the last 3 letters of a string. > > So far, I've done this: > > > symbol = 'XYZ.VX" > > substr(symbol,nchar(symbol)-2,nchar(symbol)) > [1] ".VX" > > It works, but the code looks UGLY as hell. Am I missing something? Or > is this the way it's supposed to be? > > Thanks, > Sergio > > On 10/15/07, pintinho <diego at bpgomes.com> wrote: > > > > Hi everyone, > > > > When I try to import data do R, the following message appears: "\Uxxxxxxxx > > sequences are not supported on Windows". > > > > I tried lots of methods to import (read.csv, read.table, RODBC, read.delim) > > and the same message appears for all these methods. I think it is a bigger > > problem. > > > > Can anyone help me solving this issue? > > > > Thanks a lot. > > > > > > > > -- > > View this message in context: http://www.nabble.com/ERROR-while-importing-data-tf4628752.html#a13216707 > > Sent from the R help mailing list archive at Nabble.com. > > > > ______________________________________________ > > R-help at r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve?
On Mon, 15 Oct 2007, Gabor Grothendieck wrote:> Here is an alternative: > > sub(".*(..)$", "\\1", x) >For sufficiently small values of 3 ;) -thomas Thomas Lumley Assoc. Professor, Biostatistics tlumley at u.washington.edu University of Washington, Seattle
On Tue, 2007-10-16 at 07:49 -0700, Thomas Lumley wrote:> On Mon, 15 Oct 2007, Gabor Grothendieck wrote: > > > Here is an alternative: > > > > sub(".*(..)$", "\\1", x) > > > > For sufficiently small values of 3 ;)> all.equal(2.99999999, 3)[1] TRUE ;-) Marc