У меня есть data.table вот так:
customer_id account_id time count
1: 1 AAA 2000-01-01 0
2: 1 AAA 2000-02-01 1
3: 1 AAA 2000-03-01 2
4: 1 AAA 2000-04-01 3
5: 1 AAA 2000-05-01 4
6: 1 AAA 2000-06-01 5
7: 1 AAA 2000-07-01 6
8: 1 AAA 2000-08-01 7
9: 2 BBB 2008-01-01 0
10: 2 BBB 2008-02-01 1
11: 2 BBB 2008-03-01 2
12: 2 BBB 2008-04-01 3
13: 2 BBB 2008-05-01 4
14: 2 BBB 2008-06-01 5
15: 2 BBB 2008-07-01 6
16: 2 BBB 2008-08-01 7
17: 2 BBB 2008-09-01 8
18: 2 BBB 2008-10-01 9
19: 2 BBB 2008-11-01 10
20: 2 BBB 2008-12-01 11
21: 2 BBB 2009-01-01 12
22: 2 BBB 2009-02-01 13
23: 2 BBB 2009-03-01 14
24: 2 BBB 2009-04-01 15
Код для создания этой таблицы данных находится здесь:
customer_id <- c(rep(1,8), rep(2,16))
account_id <- c(rep("AAA",8), rep("BBB",16))
time <- c(seq(as.Date("2000/1/1"), by = "month", length.out = 8),
seq(as.Date("2008/1/1"), by = "month", length.out = 16))
count <- c(seq(from = 0, to = 7), seq(from = 0, to = 15))
my_data <- data.table(customer_id,account_id,time,count)
Я хотел бы сгенерировать новую переменную с именем, например, new_var, которая будет равна 0, если переменная count
находится в диапазоне от 1 до 4, 1, если count
находится в диапазоне от 5 до 8, 2, если coun
t между 9 и 12 и т. д. То есть к customer_id
, account_id
я бы хотел создать новую переменную, которая начиналась бы с 1 и увеличивалась на 1 после каждых 4 значений count. Это будет выглядеть так:
customer_id account_id time count new_var
1: 1 AAA 2000-01-01 0 NA
2: 1 AAA 2000-02-01 1 0
3: 1 AAA 2000-03-01 2 0
4: 1 AAA 2000-04-01 3 0
5: 1 AAA 2000-05-01 4 0
6: 1 AAA 2000-06-01 5 1
7: 1 AAA 2000-07-01 6 1
8: 1 AAA 2000-08-01 7 1
9: 2 BBB 2008-01-01 0 NA
10: 2 BBB 2008-02-01 1 0
11: 2 BBB 2008-03-01 2 0
12: 2 BBB 2008-04-01 3 0
13: 2 BBB 2008-05-01 4 0
14: 2 BBB 2008-06-01 5 1
15: 2 BBB 2008-07-01 6 1
16: 2 BBB 2008-08-01 7 1
17: 2 BBB 2008-09-01 8 1
18: 2 BBB 2008-10-01 9 2
19: 2 BBB 2008-11-01 10 2
20: 2 BBB 2008-12-01 11 2
21: 2 BBB 2009-01-01 12 2
22: 2 BBB 2009-02-01 13 3
23: 2 BBB 2009-03-01 14 3
24: 2 BBB 2009-04-01 15 3
Для счетчика, равного 0, эта новая переменная может быть, например, NA, это не имеет значения. Есть ли способ, как сделать эту последовательность (0,0,0,0,1,1,1,1,2,2,2,2, ...) в этой таблице data.table по группе?