我有数据集。
For getting Data
for(let i=0;i<datae.dataa.length;i++)
{
chart.series[i].setName(datae.dataa[i].name);
chart.series[i].setData(datae.dataa[i].data);
}
我使用
从v1 <- c("I will try to fix you usman@usman.com", "I will try to fix you", "Zombies Zombies xyz@ymail.com")
v2 < c("ABC", "XYZ", "Oh Game")
dx <- data.frame(v1, v2)
中提取电子邮件
v1
这很有效。
我只想将电子邮件放在regmatches(dx$v1, regexpr("[[:alnum:]]+\\@[[:alpha:]]+\\.com", dx$v1))
v2
相邻的位置
这样。
dx
看起来非常基本,但我无法弄明白。
答案 0 :(得分:1)
一种方法可能是
dx$emails <- sapply(dx$v1, function(x) {
email <- regmatches(x, regexpr("[[:alnum:]]+@[[:alpha:]]+\\.com", x))
(result <- ifelse(identical(email, character(0)), NA, email))
})
这基本上检查是否找到了至少一个匹配。
<小时/> 如果您不介意安装软件包,请使用stringr
并在表达式周围添加括号(@
不需要转义):
library(stringr)
dx$emails <- str_extract(dx$v1, "([[:alnum:]]+@[[:alpha:]]+\\.com)")
<小时/> 两者都会产生
v1 v2 emails
1 I will try to fix you usman@usman.com ABC usman@usman.com
2 I will try to fix you XYZ <NA>
3 Zombies Zombies xyz@ymail.com Oh Game xyz@ymail.com