#r #dplyr
#r #dplyr
Вопрос:
У меня есть такой фрейм данных
Event <-c("AIS" ,"AIS", "AIS", "AIS", " AIS")
Next_Event <-c("SERVER_SIGNAL_FAILURE-TMi", "UNEQUIPPED-TMi", "SERVER_SIGNAL_FAILURE-TMe","AIS","
UNEQUIPPED-TMe ")
df <-data.frame(Event,Next_Event)
Я попытался удалить дублированные значения, используя следующий код
df %>%
arrange(Event) %>%
group_by(Event) %>%
distinct(Event,Next_Event, .keep_all = F)
Желаемый вывод
Event <-c("AIS" ,"AIS", "AIS", " AIS")
Next_Event <-c("SERVER_SIGNAL_FAILURE-TMi", "UNEQUIPPED-TMi", "SERVER_SIGNAL_FAILURE-TMe","
UNEQUIPPED-TMe ")
df <-data.frame(Event,Next_Event)
Комментарии:
1. Вероятно, это неправильный вывод, второй вектор
Next_Event
по-прежнему содержит 5 элементов.2. Вам нужно
df %>% filter(Event != Next_Event)
?3. Не уверен, на что вы смотрите, подойдет df %>% group_by(событие) %>% distinct() . Кроме того, пожалуйста, проверьте общие данные, в них есть пробелы, а желаемый результат имеет несоответствие строк.
4. Как вы создали *** Желаемый df *** Событие имеет 4, а следующее событие имеет 5 элементов. Это разные числа для создания фрейма данных.
5. Извините за любое удобство. Я обновил код
Ответ №1:
Вы можете сохранить только строки, где Event
и Next_Event
отличаются.
Это можно записать в базовом R :
subset(df, Event != Next_Event)
# Event Next_Event
#1 AIS SERVER_SIGNAL_FAILURE-TMi
#2 AIS UNEQUIPPED-TMi
#3 AIS SERVER_SIGNAL_FAILURE-TMe
#5 AIS n UNEQUIPPED-TMe
dplyr
:
library(dplyr)
df %>% filter(Event != Next_Event)
Или data.table
:
library(data.table)
setDT(df)[Event != Next_Event]