假设我有两个变量的数据集。变量“To”是名称和电子邮件地址的混合。
From To
1 bob.a@mail1.com d,alan
2 carolyn.b@mail2.com c,chris
3 chris.c@mail3.com b,carolyn
4 alan.d@mail4.com bob.a@mail1.com
我想将变量“To”中的名称转换为正确的电子邮件地址,如变量“From”所示。例如:使用1st obs作为alan.d@mail4.com
创建一个新变量“To_email”如何处理? 非常感谢!
答案 0 :(得分:0)
你可以这样做:
t <- read.table(text=' From To
1 bob.a@mail1.com d,alan
2 carolyn.b@mail2.com c,chris
3 chris.c@mail3.com b,carolyn
4 alan.d@mail4.com bob.a@mail1.com')
t$FromName <- sub('@.*', '', t$From)
t$ToName <- sub('@.*', '', sub('(.*),(.*)', '\\2.\\1', t$To))
merge(data.frame(Name=t$ToName), data.frame(Name=t$FromName, Email=t$From), by='Name', sort=F)
Name Email
1 alan.d alan.d@mail4.com
2 chris.c chris.c@mail3.com
3 carolyn.b carolyn.b@mail2.com
4 bob.a bob.a@mail1.com