У меня есть data.table
в R
. Я должен уменьшить дату от последней переменной в группе. Таким образом, в приведенном ниже примере дата «2012-01-21» должна быть 10-й строкой, когда id = «A», а затем уменьшаться до 1-й строки. а затем для id = "B" дата должна быть "2012-01-21" для 5-й строки, а затем уменьшаться на 1, пока не достигнет первой строки. По сути, декремент должен начинаться с последнего значения по «id». Как я мог совершить sh в R
data.table
?
Код ниже делает обратное. Дата начинается с 1-й строки и уменьшается, как бы вы начали дату с последней строки, а затем уменьшали ее.
end<- as.Date("2012-01-21")
dt <- data.table(id = c(rep("A",10),rep("B",5)),sales=10+rnorm(15))
dtx <- dt[,date := seq(end,by = -1,length.out = .N),by=list(id)]
> dtx
id sales date
1: A 12.008514 2012-01-21
2: A 10.904740 2012-01-20
3: A 9.627039 2012-01-19
4: A 11.363810 2012-01-18
5: A 8.533913 2012-01-17
6: A 10.041074 2012-01-16
7: A 11.006845 2012-01-15
8: A 10.775066 2012-01-14
9: A 9.978509 2012-01-13
10: A 8.743829 2012-01-12
11: B 8.434640 2012-01-21
12: B 9.489433 2012-01-20
13: B 10.011354 2012-01-19
14: B 8.681002 2012-01-18
15: B 9.264915 2012-01-17