R 如何将电子邮件地址列表拆分为用户名和域?
我有一张桌子,上面有一列电子邮件。我想把它分成两列,一列是用户名,另一列是域。我尝试过几种解决方案,但我在处理列表时遇到了麻烦 我可以使用str_locate()找到@的位置并使用它进行拆分。我也可以使用str_split 这是我使用的代码R 如何将电子邮件地址列表拆分为用户名和域?,r,R,我有一张桌子,上面有一列电子邮件。我想把它分成两列,一列是用户名,另一列是域。我尝试过几种解决方案,但我在处理列表时遇到了麻烦 我可以使用str_locate()找到@的位置并使用它进行拆分。我也可以使用str_split 这是我使用的代码 my_df %>% mutate(domain = str_locate(du_email, "@")[1]) 问题是str_locate返回一个列表。当我不包括一个切片[1]时,我会得到一个错误,因为它创建了太多的值;当我包括一个切片时,所有的值都
my_df %>% mutate(domain = str_locate(du_email, "@")[1])
问题是str_locate返回一个列表。当我不包括一个切片[1]时,我会得到一个错误,因为它创建了太多的值;当我包括一个切片时,所有的值都会被第一个结果的输出填充 您可以使用
library(dplyr)
df <- data.frame(ID = c(1,2,3,4,5),
Email = c("1@gmail.com","2@hotmail.com","3@test.com","4@yahoo.com","5@gmail.com"))
test <- df%>%
mutate(user = gsub("@.*","",Email))%>%
mutate(Domain = gsub(".*@","",Email))%>%
select(-Email)
ID user Domain
1 1 1 gmail.com
2 2 2 hotmail.com
3 3 3 test.com
4 4 4 yahoo.com
5 5 5 gmail.com
库(dplyr)
df%
变异(域=gsub(“.@”,电子邮件))%>%
选择(-Email)
ID用户域
1.gmail.com
2 hotmail.com
3.test.com
4雅虎网站
5.gmail.com
您可以使用
library(dplyr)
df <- data.frame(ID = c(1,2,3,4,5),
Email = c("1@gmail.com","2@hotmail.com","3@test.com","4@yahoo.com","5@gmail.com"))
test <- df%>%
mutate(user = gsub("@.*","",Email))%>%
mutate(Domain = gsub(".*@","",Email))%>%
select(-Email)
ID user Domain
1 1 1 gmail.com
2 2 2 hotmail.com
3 3 3 test.com
4 4 4 yahoo.com
5 5 5 gmail.com
库(dplyr)
df%
变异(域=gsub(“.@”,电子邮件))%>%
选择(-Email)
ID用户域
1.gmail.com
2 hotmail.com
3.test.com
4雅虎网站
5.gmail.com
我猜您正在寻找分离(my_df,du_email,into=c(“name”,“domain”),sep=“@”)
很漂亮。核心R的分离部分是吗?它在tidyr
中-packageBase R函数应该是strsplit
,例如as.data.frame(do.call(rbind,strsplit(xy),@)
其中xy
是电子邮件地址的字符向量。我猜您正在寻找单独的(my_df,du_email,into=c(“名称”,“域”),sep=“@)
Beautiful。是核心R的独立部分吗?它位于tidyr
-packageBase R函数将是strsplit
,例如as.data.frame(do.call(rbind,strsplit(xy,“@”))
其中xy
是电子邮件地址的字符向量。