我遇到了一個應該很簡單的問題。可能是正則表達式問題。我是一個新手。請考慮一個字符串矢量,如一個:使用str_extract_all只提取R中的前兩個單詞?
species_location<-c('Homo_sapiens_Lausanne_Switzerland', 'Solenopsis_invicta_California_US', 'Rattus_novaborensis_Copenhagen_Denmark', 'Candida_albicans_Crotch_Home')
我想與物種新的載體,看起來像落得:
c(Homo_sapiens, Solenopsis_invicta, Rattus_novaborensis, Candida_albicans)
目前我使用下面的函數:
str_extract_all(species_location,'^(\\S+?)_(\\S+?)_')
但是,它返回前三個單詞,而不是我設計的。我無法弄清楚爲什麼。請任何人都能幫忙解釋一下嗎?謝謝
更新: 對於任何路過的人,上面輸入的代碼正常工作,除了我的R Console for Mac OS 3.0.0,R.app 1.60。我仍然不知道那裏有什麼問題,但可能是其他人要檢查的興趣。將嘗試在這裏添加圖片。
我無法重現此,運行您的示例代碼,我得到每個項目(後跟一個尾部'_')的前兩個單詞。你確定你的示例代碼與你正在運行的代碼匹配嗎? – Marius
如果你想成爲積極的人,你就不會發瘋 - 並且懷疑你的懶惰修飾符可能會出現某種魔法,那麼試試這個:'^([a-zA-Z] +)_([a -zA-Z] +)_' – Addison
這很奇怪!在我這邊,它每次都會返回前三個字,我已經嘗試了很多小的修改(例如使用{2})! – Scientist