Использование aggregate
и diff
. 60*24
преобразует текущие секунды в дни.
aggregate(Date ~ New_Renew, dat, function(x) mean(diff(x))/(60*24))
# New_Renew Date
# 1 NEW 52.38292438
# 2 Renewing 0.01471444
Или с tapply
.
with(dat, tapply(Date, New_Renew, function(x) mean(diff(x))/(60*24)))
# NEW Renewing
# 52.38292438 0.01471444
Данные
dat <- structure(list(Date = structure(c(1547154676, 1550877708, 1551759977,
1555592710, 1555592872, 1556271145, 1556885725, 1557342608, 1558006557,
1558696703, 1559385741, 1560787689, 1561549229, 1576256263, 1578048554,
1578739611, 1579032488, 1579378470, 1579619317, 1580208104, 1580387661,
1580732977, 1582042552, 1582202272, 1582545325, 1582748018, 1583324621,
1583768916), class = c("POSIXct", "POSIXt"), tzone = ""), New_Renew = c("Renewing",
"Renewing", "Renewing", "NEW", "NEW", "Renewing", "Renewing",
"NEW", "Renewing", "Renewing", "Renewing", "Renewing", "Renewing",
"Renewing", "Renewing", "Renewing", "NEW", "NEW", "NEW", "Renewing",
"Renewing", "Renewing", "Renewing", "Renewing", "Renewing", "NEW",
"Renewing", "Renewing")), row.names = c(NA, -28L), class = "data.frame")