У меня есть этот фрейм данных:
df1<-data.frame(ID_NUMBER = c(7160015,22695229,22695230,7160016,7160017,22695198,7160018,22695199,7160019,22695200,7160020,22695232,7160030,22697153,22697158,7162962,22698039,22698041,7162964)
, CalNumber = c(9662.37,9662.45,9663.41,9663.44,9665.97,9666.11,9667.04,9667.1,9667.87,9668.01,9668.74,9668.79,9868.2, 72719.75,72723.21,99774,99774.03,99776.11,99776.13)
,Inspection_Date = c('11/13/2009','10/8/2014','10/8/2014','11/13/2009','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','10/8/2014','11/13/2009','10/8/2014','10/8/2014','11/13/2009'))
Я пытаюсь сопоставить записи 10/08/2014 с записями 13/13/2009 на основе ближайшей близости к CalNumber (что является абсолютной разницей, что<= 1).Записи заказаны CalNumber.Наименьшее совпадение записей 13.11.2009 может быть до или после записи 10.08.2014.Как только запись 10/08/2014 сопоставляется с самой близкой записью 13.11.2009, эта запись 13.11.2009 больше не рассматривается для совпадений.</p>
Извините, если это сбивает с толку.Надеюсь, это объясняет это лучше.Вот как будет выглядеть итоговый набор результатов.
df1<-data.frame(ID_NUMBER = c(7160015,22695229,22695230,7160016,7160017,22695198,7160018,22695199,7160019,22695200,7160020,22695232,7160030,22697153,22697158,7162962,22698039,22698041,7162964)
, CalNumber = c(9662.37,9662.45,9663.41,9663.44,9665.97,9666.11,9667.04,9667.1,9667.87,9668.01,9668.74,9668.79,9868.2, 72719.75,72723.21,99774,99774.03,99776.11,99776.13)
,Inspection_Date = c('11/13/2009','10/8/2014','10/8/2014','11/13/2009','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','11/13/2009','10/8/2014','10/8/2014','11/13/2009','10/8/2014','10/8/2014','11/13/2009')
,Diff = c(NA,0.08,0.03,NA,NA,0.14,NA,0.06,NA,0.14,NA,0.05,NA, NA,NA,NA,0.03,0.02,NA)
,MatchID = c(NA,7160015,7160016,NA,NA,7160017,NA,7160018,NA,7160019,NA,7160020,NA, NA,NA,NA,7162962,7162964,NA))
Конечный набор результатов содержит 2 дополнительных столбца.Diff (abs (CalNumber) <= 1), который является разницей abs самой близкой записи, основанной на CalNumber.MatchID, который является соответствующим ID_Number, который был ближайшей записью.Если 10/08/2014 не имеет совпадения <= 1, оно остается пустым.Все столбцы MatchID 13.11.2009 пусты.MatchID заполняется только для записей 10/08/2014 с самыми близкими совпадениями 13.11.2009. </p>
Заранее спасибо !!