Вы можете сделать это, используя функцию as.yearmon
из пакета zoo
, чтобы получить дату года / месяца и базовую функцию R aggregate
.
Но сначала преобразуйте столбец в класс Date
.
library(zoo)
df1$dates <- as.Date(df1$dates, "%m/%d/%Y")
aggregate(vol ~ name + as.yearmon(dates), df1, sum)
# name as.yearmon(dates) vol
#1 a fev 2017 3
#2 b jul 2017 5
#3 a mar 2018 18
#4 b jul 2018 15
#5 b ago 2018 25
Данные.
df1 <- read.table(text = "
name dates vol
a 02/23/2017 1
a 02/27/2017 2
a 03/14/2018 10
a 03/26/2018 8
b 07/10/2017 5
b 07/15/2018 15
b 08/20/2018 25
", header = TRUE)