custid <- c(1,2,2,2)
prod <- c("books", "highlighters", "books", "pens")
qdate <- c(20130401, 20130403, 20130403, 20130404)
tdate <- c(20130405, 20130804, 20130405, 20130405)
data <- data.frame(custid, prod, qdate, tdate)
data$qdate <- as.Date(as.character(data$qdate), "%Y%m%d")
data$tdate <- as.Date(as.character(data$tdate), "%Y%m%d")
(data2 <- difftime(data$tdate, data$qdate, data$custid, units="days")) #works
data2 <- aggregate(cbind(data$tdate=format(date, '%Y-%m-%d'))~cbind(data$qdate=format(date, '%Y-%m-%d')) + data$prod + data$custid, data, difftime(data$tdate, data$qdate, data$custid, units="days"))
Для приведенного выше кода R, я пытаюсь использовать функцию агрегата, чтобы найти выход, как показано ниже. Дифференциал правильно определяет дни. Однако агрегатные функции не работают и вызывают ошибки. Кто-нибудь знает, как решить эту проблему? Благодарю.Разница между датами для каждого клиента и продукта в R
custid prod qdate tdate days_difference
1 books 20130401 20130405 4
2 highlighters 20130403 20130804 123
2 books 20130403 20130405 2
2 pens 20130404 20130405 1
Оба cdeterman и @Richard Scriven работают. Спасибо, ребята, так много. В столбце days_difference, как мне не включать «дни»? – sharp
Просто используйте 'as.numeric' – cdeterman