我有一个电子邮件地址的数据帧,我需要按地址和域拆分。我找到了tidyr和它的单独命令,但是当我运行new_var时,我要么将一个数据帧添加到我的数据帧中,称为“tidyr”,要么将正确分隔的数据打印到控制台中。
我需要将分离的数据作为新列添加到我现有的数据框架中。
我使用的是类似于
separate(email_data, EMAIL_ADDRESS, into=c("address","domain"), sep="@", remove=FALSE)我需要将结果添加到我的'email_data‘DF中,一个名为address,一个名为domain。
我查看了这里和其他地方,我试图添加使用粘贴(而不是c(,但这并没有做到。
任何帮助都是非常感谢的。
谢谢!
发布于 2018-05-15 01:51:35
提供的两个答案很有帮助(也很感谢),但都不能完全满足我的需要,这在一定程度上是我的错。所有我真正需要的是电子邮件地址的域名部分。
我可以从email_address字段中提取它,并使用以下内容为它提供自己的列:
email_data$domain1 <- substring(email_data$EMAIL_ADDRESS,
regexpr("@", email_data$EMAIL_ADDRESS) + 1)
substring(text, start, stop)
text = email_address field
start = +1 character after @ symbol
stop = blank b/c I want everything after the @ symbol发布于 2018-05-15 00:39:27
下面是一个以前的机器学习问题的例子:
merc1 <- merc %>% separate(category_name,into=c("cn1","cn2","cn3"),sep="/",extra="drop")是您的输入列字符吗?
彼得
发布于 2018-05-15 00:47:46
您可以使用以下代码
library(stringr)
email_data <- str_split_fixed(email_data$EMAIL_ADDRESS, "@", 2)
colnames(email_data) <- c("Address","Domain")我已经测试过了,这将会起作用。
编辑:添加示例
Name <- c('testname', 'testname1234')
EMAIL_ADDRESS <- c('pk@sss.com', 'qwert@tyuu.com')
Init_frame <- data.frame(Name,EMAIL_ADDRESS )
Init_frame
email_data <- data.frame(EMAIL_ADDRESS)
library(stringr)
email_data <- str_split_fixed(email_data$EMAIL_ADDRESS, "@", 2)
colnames(email_data) <- c("Address","Domain")
email_data
Init_frame <- data.frame (Name,email_data)
Init_framehttps://stackoverflow.com/questions/50334973
复制相似问题