Как удалить запись в списке с помощью вектора? - PullRequest
2 голосов
/ 11 июля 2019

Я хочу удалить некоторые записи списка. Записи, которые нужно удалить, хранятся в delete_vector .

Пример с полетами :

list_flights<-dlply(flights,"carrier", function(x)subset(x, select = c(dest,air_time,flight)))
delete_vector<-c("AA","EV","VX")#should be removed from my list

Я хочу использовать delete_vector для этого, а не как:

list_flights$AA <- NULL

Большое спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 11 июля 2019

Мы можем использовать [ вместо $ для выбора нескольких list элементов. Согласно ?Extract

Самое важное различие между [, [[и $] состоит в том, что [может выбрать более одного элемента, тогда как другие два выбирают один элемент.

list_flights[delete_vector] <- NULL
1 голос
/ 11 июля 2019

Мы можем подмножество names списка и выбрать те, которых нет в delete_vector, используя %in%

new_flights <- list_flights[!names(list_flights) %in% delete_vector]

Или используя setdiff

new_flights <- list_flights[setdiff(names(list_flights), delete_vector)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...