Как удалить только дубликаты, которые выполняют другое условие в R?

#r #dataframe #dplyr #duplicates

#r #фрейм данных #dplyr #дубликаты

Вопрос:

Я хочу очистить этот набор данных.Таблица примеров

Он содержит много дубликатов. Я хочу удалить только дубликаты из UUID столбца, которые имеют наибольшее значение в столбце Shape_Area. Необходимо создать цикл, который обнаруживает дубликаты и сравнивает значения из области столбца в пределах найденных дубликатов.

Я пробовал duplicate функцию, но я не могу быть уверен, что выбранное значение является наибольшим значением из области столбца.

Я хочу, чтобы выходная таблица включала уникальные значения, которые имеют наибольшее значение в области столбца. Кто-нибудь может помочь в этом?

Комментарии:

1. Добро пожаловать в SO! Пожалуйста, не публикуйте изображения; скорее скопируйте / вставьте вашу таблицу в вопрос, чтобы каждый мог использовать ваши данные.

Ответ №1:

вы можете использовать dplyr пакет следующим образом

 library(dplyr)
newdata <- mydata %>% 
    group_by(UUID) %>% 
    arrange(-Shape_Area) %>% 
    slice(1)
  

Для каждого значения UUID этот код создает группу, а затем упорядочивает каждую группу по отношению к Shape_Area . Тогда выбирается только первая строка (например, наибольшее значение).

Если вы хотите сохранить эти данные, используйте это:

 write.csv(newdata, file = "Output.csv")
  

Комментарии:

1. Большое вам спасибо за ваш быстрый ответ! Я думаю, что это работает, но для уверенности мне нужно экспортировать набор данных. Похоже, этот код не работает: write.csv(Данные, файл = «Output.csv»). Он выдает исходный набор данных, который я импортировал. Как я могу определить команду, чтобы R знал, что нужно экспортировать результат из команды выше? (Я очень новичок в R, так что это может быть очевидным требованием ..)

2. Я отредактировал свой ответ, чтобы показать, как сохранить это в csv. Пожалуйста, рассмотрите возможность принятия ответа и проголосуйте за него.