Я ищу tidyverse
/ purrr
подход для добавления элементов в список.Например:
library(tidyverse)
l <- list(c("a", "a", "b"), c("c", "d"), c("e", "f", "e", "g"))
l
[[1]]
[1] "a" "a" "b"
[[2]]
[1] "c" "d"
[[3]]
[1] "e" "f" "e" "g"
Как мне построить конвейер %>%
, чтобы получить что-то вроде следующего:
desired <- list(
list(vec = c("a", "a", "b"), length = 3, unique = 2),
list(vec = c("c", "d"), length = 2, unique = 2),
list(vec = c("e", "f", "e", "g"), length = 4, unique = 3)
)
desired
[[1]]
[[1]]$vec
[1] "a" "a" "b"
[[1]]$length
[1] 3
[[1]]$unique
[1] 2
[[2]]
[[2]]$vec
[1] "c" "d"
[[2]]$length
[1] 2
[[2]]$unique
[1] 2
[[3]]
[[3]]$vec
[1] "e" "f" "e" "g"
[[3]]$length
[1] 4
[[3]]$unique
[1] 3
Я знаю, что могу сопоставить отдельные функции, используя l %>% map(length)
или l %>% map(unique)
, но я хотел бы добавить новые элементы в список и сделать это в одном конвейере.