purrr эквивалент lapply для возврата многоэлементного списка? - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть группа людей, у которых есть признаки того, живы они или нет, их пол и возраст:

ind <- vector(mode="list", 10)
  for(i in seq(ind)){
    ind[[i]]$alive <- 1 
    ind[[i]]$sex <- sample(c("female","male"),1) 
    ind[[i]]$age <- round(runif(1, min=1, max=10))
  }
ind

Используя ящерицу, я могу увеличить возраст каждого человека и получитьсписок индивидов со всеми их атрибутами:

lapply(ind,function(x){x$age <- x$age+1; x})

Существует ли функция карты из purrr, которая может выполнять ту же самую функцию (выдавать тот же результат, что и lapply)?Когда я использую map (), я получаю только список возрастов, а не все атрибуты для каждого человека:

map(ind, ~.$age+1)

1 Ответ

0 голосов
/ 20 декабря 2018

После прочтения файлов справки, похоже, что ?update_list - это то, что вам нужно:

map(ind, update_list, age = ~age + 1)

Так что примените к каждому элементу ind функцию update_list и замените ageпеременная с результатом выражения age + 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...