Агрегирование при объединении двух фреймов данных в R

Конечная цель состоит в суммировании общего количества (transact_data$qty) для каждой записи вproduct_info гдеtransact_data$productId существует вproduct_info, и гдеtransact_data$date находится междуproduct_info$beg_date а такжеproduct_info$end_date.

Данные приведены ниже:

product_info <- data.frame(productId = c("A", "B", "A", "C","C","B"), 
                      old_price = c(0.5,0.10,0.11,0.12,0.3,0.4),
                      new_price = c(0.7,0.11,0.12,0.11,0.2,0.3),
                      beg_date = c("2014-05-01", "2014-06-01", "2014-05-01", "2014-06-01","2014-05-01", "2014-06-01"),
                      end_date = c("2014-05-31", "2014-06-31", "2014-05-31", "2014-06-31","2014-05-31", "2014-06-31"), stringsAsFactors=FALSE)

transact_data <- data.frame(productId=c('A', 'B','A', 'C','A', 'B','C', 'B','A', 'C','A', 'B'),
                  date=c("2014-05-05", "2014-06-22", "2014-07-05", "2014-08-31","2014-05-03", "2014-02-22",
                    "2014-05-21", "2014-06-19", "2014-03-09", "2014-06-22","2014-04-03", "2014-07-08"),
                    qty =c(12,15,5,21,13,17,2,5,11,9,6,4), stringsAsFactors=FALSE)

Моим первым шагом было объединение обоих фреймов данных по productId:

sku_transact_merge <-merge(x=product_info, y=transact_data, by = c("productId"))

Следующим шагом было вычисление суммы суммы:

sku_transact_merge$total_qty <- ifelse(sku_transact_merge$date >= sku_transact_merge$beg_date & 
                                       sku_transact_merge$date <= sku_transact_merge$end_date, 
                                     aggregate(qty ~ productId+beg_date+end_date,
                                               data= sku_transact_merge, sum), 0)

Результат не то, что я хочу, и я получаю ошибку, которая говорит

(список) объект не может быть приведен к типу 'double'

Любые указатели о том, как правильно выполнить эту логику, будут высоко оценены!

Ответы на вопрос(3)

Ваш ответ на вопрос