У меня есть фрейм данных с дебетовыми или кредитовыми записями.Кредитные записи имеют точное совпадение при дебете.Мне нужно удалить кредит и связанную дебетовую запись из моего фрейма данных.
Проблема в том, что записи не являются уникальными, поэтому я не хочу удалять все соответствующие записи, только одну.(так что анти-объединение невозможно).Значения в строках являются точным совпадением, и они имеют одинаковые столбцы.
Мой подход заключался в разделении фрейма данных на «дебит» -датафрейм (ddc) и «кредит»-датафрейм (dcc) .Теперь переберите каждую строку в блоке credit-data, найдите соответствующую строку в debit-dataframe и удалите это.Обратите внимание, что они должны совпадать по нескольким столбцам.
Когда я пытаюсь использовать функцию соответствия, она продолжает вычислять, и я чувствую, что она не работает.Теперь я пытаюсь:
ddc <- ddc[!(ddc[match(dcc[1,],ddc),]),]
Я стремлюсь к следующему:
for(i in 1:nrow(dcc)){
ddc <- ddc[!(ddc[match(dcc[i,],ddc),]),]
}
Результатом должен быть кадр debit-data, в котором по одному совпадению каждой строки в кадре credit-dataудален.Таким образом, если ddc имеет 10 строк и dcc 2 строки, новый ddc будет иметь 8 строк.
Любая помощь приветствуется!
Пример данных:
dcc ddc new ddc
x1 x2 x3 x4 x5 x1 x2 x3 x4 x5 x1 x2 x3 x4 x5
1 2 3 5 6 1 2 2 3 5 1 2 2 3 5
1 3 2 3 5 1 2 3 3 3 1 2 3 3 3
1 2 3 5 6 1 2 2 3 5 1 2 2 3 5
1 5 6 7 3 1 5 5 2 3 1 5 5 2 3
1 3 2 3 5 1 3 2 3 5
1 2 3 5 6
1 3 2 3 5
1 5 6 7 3