从列中的不同电子邮件中提取特定电子邮件 - R

Extract specific emails from different emails in a column- R

我想从 dataframe.In 的 'To' 列中提取特定的电子邮件 (@enron.com),有些行有不止一封电子邮件。例如,在一行中我有这个:mark.guzman@enron.com, creightonca@hotmail.com, brendanf@gfsloans.com, seastape@teleport.com, penn_eric@salkeiz.k12.or.us,joe.stepenovitch@enron.com, jan.king@enron.com。我的问题是如何从该列中仅提取 Enron 域 (@enron.com) 电子邮件并将其保存在新列中?我可以提取它们,但问题是它将每封电子邮件放在一行中,这是不正确的,因为对于例如,如果一行包含 20 封电子邮件中的 10 封安然电子邮件,我希望将所有安然电子邮件放在一行中,而不是 10 rows.I 运行 来自此处的代码:How to extract expression matching an email address in a text file using R or Command Line?emails = regmatches(df, gregexpr("([_a-z0-9-]+(\.[_a-z0-9-]+)*@enron.com)", df))但我收到此错误:Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, : arguments imply differing number of rows: 1, 2, 0, 5

我们可以用grep来做这个

subset(df, grepl("enron.com", To))

如果一行中有多个电子邮件,请使用 str_extract

library(stringr)
data.frame(To =sapply(str_extract_all(df$To, "\S+@enron.com"), paste, collapse=","))