OK, tengo dos listas con nombre, una es "esperada" y una es "observada". Pueden ser de estructura compleja, con tipos de datos arbitrarios. Quiero obtener una nueva lista que contenga solo los elementos de la lista observada que son diferentes de lo que figura en la lista esperada. Aquí hay un ejemplo:¿cómo obtengo la diferencia entre dos listas con nombre 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 es lo que quiero que sea el resultado. He intentado esto:
> setdiff(Lobs, Lexp)
[[1]]
[1] "ni"
No, que pierde el nombre, y no creo setdiff presta atención a los nombres. El orden claramente no importa aquí, y no quiero a = 1 para que coincida con b = 1.
No estoy seguro de lo que es un buen enfoque ... Algo que se repite en una lista de nombres (Lobs)? Suena torpe y no parecido a R, aunque viable ... ¿Tiene alguna idea elegante?
Ayer estaba usando la función% en% para la depuración y estaba a punto de recomendar eso. –