Я обычно использую циклы for для перебора объектов. Недавно я наткнулся на функцию с именем pmap()
из пакета purrr
, которая предоставляет альтернативный способ параллельного отображения объекта.
Мой пример ниже не работает, и я не понимаю, почему. У кого-нибудь есть идея, почему список вывода result
не обновляется при итерации по фрейму данных? Цикл for выдаст желаемый результат, но за счет читабельности.
# load packages
library(tidyverse)
# create small dataset
dat <- mtcars[1:3, 1:3] %>%
rownames_to_column()
# view dat
dat
#> rowname mpg cyl disp
#> 1 Mazda RX4 21.0 6 160
#> 2 Mazda RX4 Wag 21.0 6 160
#> 3 Datsun 710 22.8 4 108
# prepare output list
result <- list()
# map over dat and update object result
pwalk(dat, function(rowname, mpg, cyl, disp) {
result[[rowname]] <- paste(mpg, cyl, disp)
})
# result did not get updated
result
#> list()
Создан в 2019-11-05 пакетом Представление (v0.2.1)