Мне часто нужно какое-то значение счетчика / индекса при применении функций цикла к векторам / списку. При использовании основных функций цикла этот индекс может быть создан путем последовательного добавления 1 к некоторому начальному значению. Рассмотрим следующий пример:
lets <- letters[1:5]
n = 0
for (le in lets){
n = n+1
print(paste(le,"has index",n))
}
#> [1] "a has index 1"
#> [1] "b has index 2"
#> [1] "c has index 3"
#> [1] "d has index 4"
#> [1] "e has index 5"
Единственный способ получить доступ к такому значению индекса с помощью функций цикла из пакета purrr
- это использовать map2
. Есть ли более элегантный способ сделать это, используя только purrr::map()
?
library(purrr)
map2(lets,1:length(lets),~paste(.x,"has index",.y))
#> [[1]]
#> [1] "a has index 1"
#>
#> [[2]]
#> [1] "b has index 2"
#>
#> [[3]]
#> [1] "c has index 3"
#>
#> [[4]]
#> [1] "d has index 4"
#>
#> [[5]]
#> [1] "e has index 5"