如果我有嵌套列表
m=list(list(a=1,b=2,c=3),list(a=1,b=2,c=3))
并且我有d
一个向量中元素的值,然后m
如果子列表d
不存在,如何将这些值添加到嵌套列表中,否则如何覆盖子列表的值d
?
lapply(1:length(m),function(i) c(m[[i]],d=d[[i]]))
添加vector的值d=c(1,3)
,但是问题是,如果我执行两次,它将继续添加子列表d
,这是我不希望的-我希望覆盖它们。(我想将第一个向量元素添加/替换到第一个子列表,将第二个元素添加到第二个子列表,等等)
如何在R中执行此操作?
modifyList
在这种情况下,该功能可能会很有用。赶紧跑
lapply(m, modifyList, list(d=1:3))
这将用您指定的列表中的值替换M中的子列表的值。
如果您有一个d
值向量,并且只想向每个列表添加一个,则
Map(modifyList, m, lapply(c(1,3), function(x) list(d=x)))
可能是一个更好的选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句