2016-12-25 4 views
1

Я хочу извлечь конкретные письма (@ enron.com) из столбца «Кому» в моей файловой системе. В некоторых из строк есть несколько сообщений электронной почты. Например, в одном ряду у меня есть следующее: [email protected], [email protected], [email protected], [email protected], [email protected],[email protected], [email protected]. Мой вопрос заключается в том, как я могу извлечь только электронные письма Enron (@ enron.com) из этого столбца и сохранить его в новом столбце? Я могу их извлечь, но проблема в том, что он помещает каждое электронное письмо в строку, которая не соответствует действительности, например, если строка содержит 10 электронных писем Enron из 20 писем. Я хочу иметь все электронные письма Enron в одной строке не в 10 строках. Я запустил код отсюда: 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.Извлеките специальные письма из разных электронных писем в столбце. R

+0

Вы можете разделить выборку входных данных и желаемые результаты? – Psidom

ответ

1

Мы можем использовать grep для этого

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

Если имеется несколько сообщений электронной почты в одной строке, используйте str_extract

library(stringr) 
data.frame(To =sapply(str_extract_all(df$To, "\\[email protected]"), paste, collapse=",")) 
+1

Большое вам спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^