我有两个列表:
# agg blocks don't need methods
list_1 <- list(
foo = list(list(txt = "MEAN", val= "NONE")),
foo = list(list(txt = "MEAN", val= "Week 54")),
foo = list(list(txt = "FREQ", df= "df"))
)
#
list_2 <- list(
foo = list(list(txt = "TEXT", df = "df_1")),
foo = list(list(txt = "SAMPLE ", df = "df_2")),
foo = list(list(txt = "OTHER", df = "df_1"))
)
如何创建将val
中的list_1
附加到list_2
中的第三个列表>
list_3 <- list(
foo = list(list(txt = "TEXT", df = "df_1", val = "NONE")),
foo = list(list(txt = "SAMPLE ", df = "df_2", val = "Week 54")),
foo = list(list(txt = "OTHER", df = "df_1"))
)
$foo
$foo[[1]]
$foo[[1]]$txt
[1] "TEXT"
$foo[[1]]$df
[1] "df_1"
$foo[[1]]$val
[1] "NONE"
$foo
$foo[[1]]
$foo[[1]]$txt
[1] "SAMPLE "
$foo[[1]]$df
[1] "df_2"
$foo[[1]]$val
[1] "Week 54"
$foo
$foo[[1]]
$foo[[1]]$txt
[1] "OTHER"
$foo[[1]]$df
[1] "df_1"
请注意,缺少某些列表元素val
,但两个列表的长度始终相同
我有两个列表:#agg块不需要方法list_1
我们可以使用嵌套的Map
执行此操作。用list
在外部Map
上循环,然后从inner
list
中提取“ val”分量,并将其分配给第二个list
]的相应元素
out <- Map(function(lst1, lst2) Map(c, lst2, val =
lapply(lst1, `[[`, 'val')), list_1, list_2)