Hi everyone, I believe I am not the first one to have this problem but couldn't find a relevant thread on the list. Say I have a string (actually it is the whole column in a data frame) in a format like this: test<- 'AF14-485-502-89-00235' I would like to split the test string and keep the last part. I think I can do the following sub('.*-.*-.*-.*-(.*)','\\1', test) to keep the fifth part of the string. But this won't work if other strings have more or fewer parts separated by '-'. Is there a general way to do it? Thanks. Jun [[alternative HTML version deleted]]
Here's one way: R> test<- 'AF14-485-502-89-00235' R> test2 <- strsplit(test, "-") R> test2 [[1]] [1] "AF14" "485" "502" "89" "00235" R> test2[[1]][length(test2[[1]])] [1] "00235" On Thu, Aug 28, 2014 at 1:41 PM, Jun Shen <jun.shen.ut at gmail.com> wrote:> Hi everyone, > > I believe I am not the first one to have this problem but couldn't find a > relevant thread on the list. > > Say I have a string (actually it is the whole column in a data frame) in a > format like this: > > test<- 'AF14-485-502-89-00235' > > I would like to split the test string and keep the last part. I think I can > do the following > > sub('.*-.*-.*-.*-(.*)','\\1', test) > > to keep the fifth part of the string. But this won't work if other strings > have more or fewer parts separated by '-'. Is there a general way to do it? > Thanks. > > Jun >-- Sarah Goslee http://www.functionaldiversity.org
On Aug 28, 2014, at 12:41 PM, Jun Shen <jun.shen.ut at gmail.com> wrote:> Hi everyone, > > I believe I am not the first one to have this problem but couldn't find a > relevant thread on the list. > > Say I have a string (actually it is the whole column in a data frame) in a > format like this: > > test<- 'AF14-485-502-89-00235' > > I would like to split the test string and keep the last part. I think I can > do the following > > sub('.*-.*-.*-.*-(.*)','\\1', test) > > to keep the fifth part of the string. But this won't work if other strings > have more or fewer parts separated by '-'. Is there a general way to do it? > Thanks. > > JunTry this: test <- 'AF14-485-502-89-00235'> sub("^.*-(.*)$", "\\1", test)[1] "00235" test <- 'AF14-485-502-89-00235-1234'> sub("^.*-(.*)$", "\\1", test)[1] "1234" Another option:> tail(unlist(strsplit(test, "-")), 1)[1] "1234" Regards, Marc Schwartz
On Thu, 28 Aug 2014, Jun Shen <jun.shen.ut at gmail.com> writes:> Hi everyone, > > I believe I am not the first one to have this problem but couldn't find a > relevant thread on the list. > > Say I have a string (actually it is the whole column in a data frame) in a > format like this: > > test<- 'AF14-485-502-89-00235' > > I would like to split the test string and keep the last part. I think I can > do the following > > sub('.*-.*-.*-.*-(.*)','\\1', test) > > to keep the fifth part of the string. But this won't work if other strings > have more or fewer parts separated by '-'. Is there a general way to do it? > Thanks. > > JunThis should work for your example: gsub(".*-([^-]*)$", "\\1", test) -- Enrico Schumann Lucerne, Switzerland http://enricoschumann.net
Delete all characters up to and including the last hyphen with sub(".*-", "", test) Bill Dunlap TIBCO Software wdunlap tibco.com On Thu, Aug 28, 2014 at 10:41 AM, Jun Shen <jun.shen.ut at gmail.com> wrote:> Hi everyone, > > I believe I am not the first one to have this problem but couldn't find a > relevant thread on the list. > > Say I have a string (actually it is the whole column in a data frame) in a > format like this: > > test<- 'AF14-485-502-89-00235' > > I would like to split the test string and keep the last part. I think I can > do the following > > sub('.*-.*-.*-.*-(.*)','\\1', test) > > to keep the fifth part of the string. But this won't work if other strings > have more or fewer parts separated by '-'. Is there a general way to do it? > Thanks. > > Jun > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.