У меня есть датафрейм людей по имени - все они уникальные записи.У меня есть второй массив данных о платежах, которые некоторые из этих людей сделали с датой, когда эти платежи были сделаны.
Я пытаюсь сделать это, добавив в свой массив данных с уникальными именами дату, когда человек сделал свой первый платеж.
Ниже приведены некоторые примеры данных и код, который я использую
Name payment date
Fred 01/01/2018
Jim 01/01/2018
Barney 01/01/2018
Fred 01/03/2018
John 01/02/2018
Jim 01/03/2018
Fred 01/04/2018
John 01/04/2018
Barney 01/02/2018
Barney 01/03/2018
Jim 01/05/2018
Fred 01/06/2018
. В фрейме имен есть некоторые люди, которые не сделали платеж, поэтому, когда я делаю матч, я хочу вернуться«NA» для этого человека, поэтому таблица будет выглядеть следующим образом:
Name first payment
Fred 01/01/2018
Jim 01/01/2018
Rodney NA
Barney 01/01/2018
John 01/02/2018
Я запустил следующий код, чтобы упорядочить фрейм данных платежей по дате платежа
payments<-payments[order(payments$paymentdate),]
ЗатемКод R, который я использую для поиска и сопоставления первого экземпляра по имени:
people$firstpayment<-payments[match
(people$Name,payments$Name,nomatch = 0,incomparables = NULL),c("paymentdate")]
терпит неудачу со следующим кодом ошибки R:
Error in `$<-.data.frame`(`*tmp*`, firstpayment, value = list(paymentdate = c15247, :
replacement has 10288 rows, data has 14610
Я предполагаю, что это нужно сделатьс невозможностью сопоставить NA, но я немного прочитал о функции «match» и подумал, что команда nomatch справится с этим.
Спасибо!