Как создать новый столбец, который последовательно суммирует другой столбец в R? - PullRequest
0 голосов
/ 21 января 2020

У меня есть таблица данных с 3 столбцами: customer_id, time_period и buy_cookies (0, если нет, 1, если да). Я хочу создать новый столбец (total_number_cookie_buyers), в котором суммируются предыдущие строки купленных_катушек, чтобы увидеть, сколько людей купили cookie-файлы до этого момента (например, если первые три ряда купленных_кей были 0, 1, 0, то значение в третий ряд из total_number_cookie_buyers будет 1). Я пробовал гуглить, но не могу найти что-нибудь, как это сделать!

1 Ответ

0 голосов
/ 21 января 2020

Подход, который вы ищете, называется накопительной суммой. Я думаю, что это решение.

cust_id <- NULL
 for(i in 1:21){
  if(i<10){ k <- paste("ID_00",i,sep="") } else{
    k <- paste("ID_0",i,sep="") }
  cust_id[i] <- k 
}
date <- sample(seq(as.Date('2020/01/01'), as.Date('2020/01/21'), by="day"), 21)
date <- date[order(date)]
sales <- rbinom(21,1,0.5)
df <- data.frame(cust_id=cust_id,date=date,sales=sales)
df$salesydate <- cumsum(df$sales)

cust_id дата продажи дата продаж

1 ID_001 2020-01-01 0 0

2 ID_002 2020-01-02 0 0

3 ID_003 2020-01-03 0 0

4 ID_004 2020-01-04 1 1

5 ID_005 2020-01-05 1 2

6 ID_006 2020-01-06 0 2

7 ID_007 2020-01-07 1 3

................... ................

...