У меня есть набор данных с названием вида, где некоторые первоначально использованные названия теперь устарели, поэтому они помечены как "старые_специалы *** вышедшие на пенсию *** используют новые_списки", тогда как правильные ячейки просто помечены как "новые_спеки". Вот пример данных:
df<- data.frame(species=c("Etheostoma spectabile","Ictalurus furcatus","Micropterus salmoides","Micropterus salmoides","Ictalurus punctatus","Ictalurus punctatus","Ictalurus punctatus","Micropterus salmoides","Etheostoma olmstedi","Noturus insignis","Lepomis auritus","Lepomis auritus","Nocomis leptocephalus","Scartomyzon rupiscartes***retired***use Moxostoma rupiscartes","Lepomis cyanellus","Notropis chlorocephalus","Scartomyzon cervinus***retired***use Moxostoma cervinum","Ictalurus punctatus","Lythrurus ardens","Moxostoma pappillosum","Micropterus salmoides","Micropterus salmoides","Ictalurus punctatus"))
Я пробовал
sapply(strsplit(df$species, split='***retired***use', fixed = T),function(x) (x[2])))
, но ячейки, для которых данные верны, возвращают NA, потому что они не содержат разбиение. Есть ли способ сделать разделение только для ячеек, содержащих его?