我有兩個清單:
listA <- list(group1 = tibble(names = LETTERS[1:5],
names_num = 1:5),
group2 = tibble(names = LETTERS[11:13],
names_num = 1:3))
listB <- list(group1 = list(labels = NULL,
order = 5:1),
group2 = list(labels = NULL,
order = 3:1))
我的目標是listB$groupX$labels通過為每個組插入names向量來listA進行修改,并按照listB$groupX$order. 所需的輸出如下所示:
> listB_mod
$group1
$group1$labels
[1] "E" "D" "C" "B" "A"
$group1$order
[1] 5 4 3 2 1
$group2
$group2$labels
[1] "M" "L" "K"
$group2$order
[1] 3 2 1
有沒有辦法實作這一點,最好使用 purrr::map() 系列?
任何提示非常感謝!
uj5u.com熱心網友回復:
大多數邏輯與 'purrr' 功能無關,但當然您可以map2將邏輯應用于兩個串列中的所有成對專案:
listB_mod = map2(
listA, listB,
~ list(labels = .x$names[match(.x$names_num, .y$order)], order = .y$order)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340027.html
上一篇:按位置比較字符向量的相似度
下一篇:如何計算具有特定值的列
