Skip to content

R help

2 messages · arun

#
Hi,
May be this helps:

dat <- read.table(text="Emails
Mal123 at gmail.com
Mahi.r at gmail.com
Ravi_123 at yahoo.com
Lavk.lll at rediff.com",sep="",header=TRUE,stringsAsFactors=FALSE)


?setNames(cbind(dat,do.call(rbind,strsplit(gsub(".com","",gsub("^([[:alpha:]]+)(\\d+.*)","\\1_\\2",dat$Emails)),"[_ at .]"))),c("Emails","f.name","l.name","domain"))
#?????????????? Emails f.name l.name domain
#1??? Mal123 at gmail.com??? Mal??? 123? gmail
#2??? Mahi.r at gmail.com?? Mahi????? r? gmail
#3? Ravi_123 at yahoo.com?? Ravi??? 123? yahoo
#4 Lavk.lll at rediff.com?? Lavk??? lll rediff


A.K.


Hi,

Emails

Mal123 at gmail.com

Mahi.r at gmail.com

Ravi_123 at yahoo.com

Lavk.lll at 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

Mal123 at gmail.com? ? ? ?  mal? ? ? ? ?  123? ? ? ? ?  gmail

Mahi.r at gmail.com? ? ? ? ?  mahi? ? ? ? r? ? ? ? ? ? ? ? gmail

Ravi_123 at yahoo.com? ?  ravi? ? ?  123? ? ? ? ? ? gmail

Lavk.lll at rediff.com

Please give me solution
#
Hi,
If you have .edu, .gov etc.
dat <- structure(list(Emails = c("Mal123 at gmail.com", "Mahi.r at gmail.com", 
"Ravi_123 at yahoo.com", "Lavk.lll at 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)),"[_ at .]"))),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 <smartpink111 at yahoo.com> wrote:
Hi,
May be this helps:

dat <- read.table(text="Emails
Mal123 at gmail.com
Mahi.r at gmail.com
Ravi_123 at yahoo.com
Lavk.lll at rediff.com",sep="",header=TRUE,stringsAsFactors=FALSE)


?setNames(cbind(dat,do.call(rbind,strsplit(gsub(".com","",gsub("^([[:alpha:]]+)(\\d+.*)","\\1_\\2",dat$Emails)),"[_ at .]"))),c("Emails","f.name","l.name","domain"))
#?????????????? Emails f.name l.name domain
#1??? Mal123 at gmail.com??? Mal??? 123? gmail
#2??? Mahi.r at gmail.com?? Mahi????? r? gmail
#3? Ravi_123 at yahoo.com?? Ravi??? 123? yahoo
#4 Lavk.lll at rediff.com?? Lavk??? lll rediff


A.K.


Hi,

Emails

Mal123 at gmail.com

Mahi.r at gmail.com

Ravi_123 at yahoo.com

Lavk.lll at 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

Mal123 at gmail.com? ? ? ?? mal? ? ? ? ?? 123? ? ? ? ?? gmail

Mahi.r at gmail.com? ? ? ? ?? mahi? ? ? ? r? ? ? ? ? ? ? ? gmail

Ravi_123 at yahoo.com? ?? ravi? ? ?? 123? ? ? ? ? ? gmail

Lavk.lll at rediff.com

Please give me solution