Использование карты для извлечения из вложенного списка - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь ознакомиться с purrr, map и pluck, и у меня есть глубоко вложенный список:

test_list <- 
    list(
      outer_1 = list(
        list(
          inner_1 = list(pluck = "String I Want", dontpluck = "other string")
        )
      )
    )
$outer_1
$outer_1[[1]]
$outer_1[[1]]$inner_1
$outer_1[[1]]$inner_1$pluck
[1] "String I want"

$outer_1[[1]]$inner_1$dontpluck
[1] "other string"

И я хотел бы извлечь "String I want"

Я знаю, что могу получить строку, используя

test_list$outer_1[[1]]$inner_1$pluck

Но я бы хотел абстрагироваться, используя карту, но я пропускаю некоторые шаги. (в основном я не знаю, как эмулировать часть [[1]], используя map - что-то вроде:

map(test_list, "outer_1") %>%
  map("inner_1") %>%
  map("pluck")

Желаемый вывод

[1] "String I want"

1 Ответ

1 голос
/ 18 марта 2020

Один из способов может быть:

map_chr(pluck(test_list, "outer_1"), pluck, "inner_1", "pluck")

[1] "String I Want"
...