Хорошо, у меня есть два названных списка, один из них "ожидается", а один "наблюдается". Они могут быть сложными по структуре с произвольными типами данных. Я хочу получить новый список, содержащий только те элементы наблюдаемого списка, которые отличаются от ожидаемых. Вот пример:
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.
Не уверен, какой хороший подход... Что-то, что перебирает список имен (Lobs)? Звучит неуклюжий и не-R-подобный, хотя и работоспособный... Есть какие-то элегантные идеи?