Say У меня есть dataframe, df
, с тремя векторами:R - Удалить комбинации переменных, которые происходят несколько раз в data.frame
colours individual value
1 white individual 1 0.4
2 white individual 1 0.7
3 black individual 2 1.1
4 black individual 3 0.5
Иногда же человек показывает вверх несколько раз для тех же цветов но разные значения. Я хотел бы написать код, который удалит все экземпляры, в которых это происходит.
*** EDIT: Есть много других строк, чем 4 миллиона - я не думаю, что текущие решения работают.
Я хотел бы подсчитать, сколько раз строка, которую я сейчас нахожу, в цикле for for, появляется, а затем удаляет их из data.frame. Таким образом, в приведенном выше примере я хотел бы избавиться от индивидуального 1. Затем df оставил остальные две строки.
До сих пор мой подход был такой:
Получить список всех цветов
Получить список всех лиц
Напишите два для петель.
colours <- unique(df$colours) ind <- unique(df$individual) for (i in ind) { for (c in colour) { #something here. Probably if, asking if the person I'm on in the loop #is found with the colour I am on, more than once, get rid of them } }
Мой ожидаемый результат заключается в следующем:
colours individual value
black individual 2 1.1
black individual 3 0.5
Исходные данные
df <- data.frame(colours = c("white", "white", "black", "black"),
individual = c("individual 1", "individual 1", "individual 2", "individual 3"),
value = c(0.4, 0.7, 1.1, 0.5))
Можете ли вы обновить ожидаемый результат – akrun
Спасибо за предложение, mtoto. Это будет работать, за исключением другого вектора со значениями, которые отличаются друг от друга. Я не могу определить, какое значение является правильным, поэтому я пытаюсь просто удалить, где я нахожу два значения для одного и того же человека для одного и того же цвета. Я отредактирую это на вопрос, поскольку я только что заметил, как это усложняет ситуацию. – Gotmadstacks
Может ли кто-нибудь отменить это как дубликат? Это не. Строки разные. Я изменил вопрос, чтобы отразить это. Извините за предыдущую путаницу. – Gotmadstacks