Удалять элементы списка по отношению к элементам другого списка it R

#r #list #indexing

#r #Список #индексирование

Вопрос:

Итак, у меня есть этот df:

 df <- read.csv("data_Marriages.csv")
  

И эти два списка взяты из df:

 month_ins <- df$month_ins
city_ins <- df$city_ins
  

Что я хочу, так это удалить из обоих данных, относящихся к городу "Guayaquil" , чтобы city_insc было проще:

 city_insc_NG <- city_insc[city_insc != "Guayaquil"]
  

поскольку этот список содержит названия городов, но он отличается, когда вы пытаетесь с month_ins как я узнаю, какой из них принадлежит «Гуаякилю», а какой нет.

Итак, я попробовал с циклом for, и тоже не сработало:

 j = 1
for( i in city_ins){
   if(i == "Guayaquil"){
      city_ins[i] <- NULL
      month_ins[j] <- NULL
   }
   j = j   1    
}
  

Итак… Как я могу удалить элементы в month_ins по отношению к позициям в city_ins , которые в нем занимают "Guayaquil" ?

Ответ №1:

Вы могли бы удалять значения из month_ins аналогичным образом.

 mont_ins_NG <- month_ins[city_insc != "Guayaquil"]
  

Или вместо подмножества вектора из фрейма данных :

 month_ins <- df$month_ins[df$city_insc != "Guayaquil"]
  

Ответ №2:

Мы можем использовать with

 month_ins <- with(df, month_ins[city_insc != "Guayaquil"])