OK, j'ai deux listes nommées, une est "attendue" et une est "observée". Ils peuvent être de structure complexe, avec des types de données arbitraires. Je veux obtenir une nouvelle liste contenant seulement les éléments de la liste observée qui sont différents de ce qui est dans la liste attendue. Voici un exemple:Comment obtenir la différence entre deux listes de noms R?
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 est ce que je veux que le résultat soit. J'ai essayé ceci:
> setdiff(Lobs, Lexp)
[[1]]
[1] "ni"
Non, cela perd le nom, et je ne pense pas que setdiff prête attention aux noms. L'ordre n'a pas d'importance ici, et je ne veux pas a = 1 pour correspondre à b = 1.
Vous ne savez pas quelle est une bonne approche ... Quelque chose qui boucle sur une liste de noms (Lobs)? Semble maladroit et non-R-like, bien que réalisable ... Vous avez des idées élégantes?
J'utilisais juste la fonction% in% hier pour le débogage et était sur le recommander. –