【发布时间】:2010-11-30 22:19:33
【问题描述】:
好的,我有两个命名列表,一个是“预期的”,一个是“观察到的”。它们的结构可能很复杂,具有任意数据类型。我想获得一个新列表,其中仅包含观察列表中与预期列表中的元素不同的元素。这是一个例子:
Lexp <- list(a=1, b="two", c=list(3, "four"))
Lobs <- list(a=1, c=list(3, "four"), b="ni")
Lwant <- list(b="ni")
Lwant 是我想要的结果。我试过这个:
> setdiff(Lobs, Lexp)
[[1]]
[1] "ni"
不,这会丢失名称,而且我认为 setdiff 不会注意名称。顺序在这里显然无关紧要,我不希望 a=1 与 b=1 匹配。
不确定什么是好的方法...循环遍历 names(Lobs) 列表的东西?听起来很笨拙且不像 R,虽然可行...有什么优雅的想法吗?
【问题讨论】: