Hi, If you have .edu, .gov etc. dat <- structure(list(Emails = c("mal...@gmail.com", "mah...@gmail.com", "ravi_...@yahoo.com", "lavk....@ufl.edu")), .Names = "Emails", class = "data.frame", row.names = c(NA, -4L)) res <- setNames(cbind(dat,do.call(rbind,strsplit(gsub("\\.[[:alnum:]]+$","",gsub("^([[:alpha:]]+)(\\d+.*)","\\1_\\2",dat$Emails)),"[_@.]"))),c("Emails","f.name","l.name","domain")) res[sapply(res,is.factor)] <- lapply(res[sapply(res,is.factor)],as.character) A.K.
On Thursday, February 6, 2014 12:46 AM, arun <smartpink...@yahoo.com> wrote: Hi, May be this helps: dat <- read.table(text="Emails mal...@gmail.com mah...@gmail.com ravi_...@yahoo.com lavk....@rediff.com",sep="",header=TRUE,stringsAsFactors=FALSE) setNames(cbind(dat,do.call(rbind,strsplit(gsub(".com","",gsub("^([[:alpha:]]+)(\\d+.*)","\\1_\\2",dat$Emails)),"[_@.]"))),c("Emails","f.name","l.name","domain")) # Emails f.name l.name domain #1 mal...@gmail.com Mal 123 gmail #2 mah...@gmail.com Mahi r gmail #3 ravi_...@yahoo.com Ravi 123 yahoo #4 lavk....@rediff.com Lavk lll rediff A.K. Hi, Emails mal...@gmail.com mah...@gmail.com ravi_...@yahoo.com lavk....@rediff.com I need split firstname,lastname,domail(only gmail,not gmail.com),also 123 in last name,so please give me help Output is Emails f.name l.name domain mal...@gmail.com mal 123 gmail mah...@gmail.com mahi r gmail ravi_...@yahoo.com ravi 123 gmail lavk....@rediff.com Please give me solution ______________________________________________ R-help@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.