Вам нужна запятая в скобках
df %>%
#rowwise() %>%
mutate(pos=Vstr_locate(string = string, pattern = "de")[2,])
string pos
1 abcde 5
2 cde 3
Посмотрите на результаты двух функций
str_locate(string = "abcde", pattern = "de")
start end
[1,] 4 5
vs.
Vstr_locate(string = "abcde", pattern = "de")
abcde
[1,] 4
[2,] 5
Аналогично, если вы применяете каждый по списку
library(purrr)
strings <- c('abcde', 'cde')
map(strings, str_locate, "de")
[[1]]
start end
[1,] 4 5
[[2]]
start end
[1,] 2 3
против
map(strings, Vstr_locate, "de")
[[1]]
abcde
[1,] 4
[2,] 5
[[2]]
cde
[1,] 2
[2,] 3
Требуемый элемент индексируется как [2,]
с Vstr_locate