Удалить несколько строк из списка имен в R (список из 187 имен для удаления)? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть фрейм данных в R, содержащий более 29 000 строк. Мне нужно удалить несколько строк, используя только список имен (187 имен).

Мой набор данных об авиакомпаниях, и мне нужно удалить указанные c авиакомпании из моего набора данных, который содержит более 200 типов авиакомпаний , Моя первая колонка содержит все названия авиакомпаний, и мне нужно удалить всю строку для этих указанных c авиакомпаний.

Я выделил все названия авиакомпаний, которые я хочу удалить, с помощью этого кода: transmute(a_name_remove, airline_name). Это дало мне таблицу всех названий авиакомпаний, которые я хочу удалить, теперь я должен удалить этот список имен из моего исходного набора данных с именем Airlines .

Я знаю, что есть способ сделать это вручную, например: mydata[-c("a", "b"), ]. Но записывать каждое имя было бы hecti c.

Не могли бы вы помочь мне, предоставив мне способ использовать список, который я должен удалить из строк из моего набора данных?

Я не могу написать каждое имя самостоятельно. Я также попробовал это: airlines[!(row.names(airlines) %in% c(remove)), ], в котором я сделал свой список «удаленным» во фрейм данных и в качестве вектора, а затем использовал этот код, чтобы удалить его из моего исходного набора данных «Airlines», все еще не работал.

Спасибо!

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете создать функцию, которая отрицает% в%, например,

'%not_in%' <- Negate('%in%')

, поэтому в соответствии с вашим кодом она должна выглядеть следующим образом

airlines[row.names(airlines) %not_in% remove, ]

дополнительно, я не рекомендую использовать удалить как имя переменной, так как это базовая функция в R, если возможно, переименовать переменную, например discard_airlines,

airlines[row.names(airlines) %not_in% discard_airlines, ]
...