> a
UID Date.of.Txn
1 1 09-11-2016
2 1 25-10-2016
3 1 30-08-2016
4 2 30-08-2016
5 2 02-06-2016
6 3 18-04-2016
7 3 31-01-2016
8 4 03-11-2015
9 4 06-08-2015
10 5 20-05-2015
11 5 08-05-2015
Что я хочу, так это то, что за каждые UID
необходимо вернуть вторую последнюю дату w.r.t. к его значению в колонке Date.of.Txn
.Возврат второй последней даты
Для например
для UID = 1
и Date.of.Txn = 09-11-2016
последняя дата Txn на 09-11-2016
для ID = 1
был 25-10-2016
аналогично для
UID = 1
и Date.of.Txn 25-10-2016
последняя дата Txn на 25-10-2016
для ID = 1
был 30-08-2016
и
так как нет доступной даты UID = 1
и Date of Txn = 30-08-2016
значения в столбце Datesorted
будет 0
, как показано ниже.
> result
UID Date.of.Txn Datesorted
1 1 09-11-2016 25-10-2016
2 1 25-10-2016 30-08-2016
3 1 30-08-2016 0
4 2 30-08-2016 02-06-2016
5 2 02-06-2016 0
6 3 18-04-2016 31-01-2016
7 3 31-01-2016 0
8 4 03-11-2015 06-08-2015
9 4 06-08-2015 0
10 5 20-05-2015 08-05-2015
11 5 08-05-2015 0
Любые идеи?
Вы можете использовать dplyr и его функции ввода/запаздывания. https://cran.r-project.org/web/packages/dplyr/vignettes/window-functions.html – PhillipD