(возможно) необходимо более одной строки:
for (i in 1:length(row.names(d)){
d$domain[i]<-unlist(strsplit( d$email[i], "@"))[2]
}
(Примечание: d$email
должно быть character
, а не factor
, и хотя вы использовали 1 в качестве индекса в своем вопросе, индекс 2 будет соответствовать домену электронной почты)
Обновление: я думаю, что есть способ завершить эту задачу в одну строку, используя «применить», но я не уверен, как это сделать ... пока.
Ответ в одну строку (после определения функции):
fn <- function(x){unlist(strsplit(x,"@"))[2]}
d$domain <- lapply(d$email, fn)