Как удалить строку, потому что она имеет только одну или ту же запись в другом столбце? - PullRequest
2 голосов
/ 15 мая 2019

Я подготовил небольшой пример: exp.pic

enter image description here

Я хочу удалить строки Opel, потому что Opelприсутствует дважды с одной и той же моделью. И ford встречается только один раз.

Я просто хочу, чтобы автомобили имели как минимум две разные модели.

Car<-c("Audi","Audi","BMW","BMW","Mercedes","Opel","Ford","Audi","BMW","Mercedes","Audi","BMW","Mercedes","Opel")
Model<-c("A4","A4","X5","X5","E","Astra","Fiesta","A6","M3","C","A6","530","A","Astra")

Car<-cbind(Car,Model)
Car<-data.frame(Car)

Вывод должен выглядеть следующим образом:

enter image description here

И, например, все в порядке, что Audi A4 появляется в пять раз дольше, чем другая модель Audi.

Iнадеюсь, я смогу объяснить это хорошо.

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Еще одна попытка с dplyr:

Car %>%
  group_by(Car) %>%
  filter(n_distinct(Model) > 1) %>%
  ungroup() %>%
  arrange(Car, Model)

# # A tibble: 11 x 2
#  Car      Model
#  <fct>    <fct>
#  1 Audi     A4   
#  2 Audi     A4   
#  3 Audi     A6   
#  4 Audi     A6   
#  5 BMW      530  
#  6 BMW      M3   
#  7 BMW      X5   
#  8 BMW      X5   
#  9 Mercedes A    
# 10 Mercedes C    
# 11 Mercedes E 
0 голосов
/ 15 мая 2019

Используя subset, мы можем фильтровать автомобильные компании с более чем одной уникальной моделью.

out <- subset(Cars, ave(Model, Car, FUN = function(x) length(unique(x))) > 1)
out
#        Car Model
#1      Audi    A4
#2      Audi    A4
#3       BMW    X5
#4       BMW    X5
#5  Mercedes     E
#8      Audi    A6
#9       BMW    M3
#10 Mercedes     C
#11     Audi    A6
#12      BMW   530
#13 Mercedes     A

data

Cars <- data.frame(Car, Model, stringsAsFactors = FALSE)
#  ^ note the different name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...