Я пытаюсь написать функцию, которая принимает вектор, ищет элементы внутри этого вектора, которые содержат определенную строку, и заменяет весь текст этого элемента первым словом в исходном элементе.Как искать символьный вектор для строки и где ИСТИНА заменить весь элемент частью исходного элемента?
, например, у меня есть:
vec <- c("eolimna pala", "achnanthes lata", "navicula spp.", "diploneis spp. 2")
и я хотел бы получить:
vec <- c("eolimna pala", "achnanthes lata", "navicula", "diploneis")
это более или менее то, что я есть. Буду признателен за любую оказанную помощь. EDIT: было бы еще более полезно, если бы я мог представить в качестве аргумента символьный вектор из нескольких строк для проверки каждого элемента.
rollToGenus <- function (vec) {
greps <- grepl(" spp. ", as.character(vec))
for (i in 1:length(vec)) {
if (greps[i] == TRUE) {
paste(str_split_fixed(i, " ", n=6)[1])
}
}
}
Почему 'a' и' b' включены в выход? у них нет spp. – MichaelChirico
Я хочу, чтобы результат был исходным вектором, но с заменой. – bishopia