2017-02-20 77 views
1

我正在尋找一些幫助來創建一個數據框中的多個名稱變量的電子郵件。想知道是否有快速的方法來使用正則表達式來做到這一點?請注意,該ID需要包括在內。例如,if id == 1, return an email address is the following format: [email protected]任何人可以提供幫助將不勝感激。從變量創建電子郵件R

#Starting 
id = c(1,2) 
firstnm = c("tim", "mary") 
midnm = c("chris","sally") 
lastnm = c("smith","jane") 
email = c("","") 
st_df = data.frame(id,firstnm,midnm,lastnm,email) 


#Ending 
id = c(1,2) 
firstnm = c("tim", "mary") 
midnm = c("chris","sally") 
lastnm = c("smith","jane") 
email = c("[email protected]","[email protected]") 
end_df = data.frame(id,firstnm,midnm,lastnm,email) 
+0

解釋爲什麼蒂姆中間的名字成爲一個人物,但瑪麗的中間名完全消失。 –

+0

嗨@TimBiegeleisen。對您的問題的簡短回答是,某些組ID會使用電子郵件格式,但不會在電子郵件地址中使用中間名,儘管它已發佈在數據框中。 – richiepop2

+1

然後你需要提供邏輯,如果你想能夠處理這種情況。 –

回答

1

我們可以做一個ifelse

st_df$email <- with(st_df, ifelse(id==1, paste0(firstnm, ".", 
     substr(midnm, 1, 1),".", lastnm, "@email.com"), 
     paste0(firstnm, ".", lastnm, "@email.com"))) 
st_df$email 
#[1] "[email protected]" "[email protected]" 
+0

它已經被我回答了。 –

+0

@TimBiegeleisen爲什麼當我首先發布答案時,你是在重複我的評論 – akrun

+0

我們沒有發佈相同的答案,不用擔心。 –