В базе R вы можете использовать format
добавить столбец года
df$Year <- format(as.Date(df$Date), "%Y")
# Date cardioadmission respiratoryadmission Year
# 1 2001-01-01 12 6 2001
# 2 2001-01-02 10 5 2001
# 3 2001-01-03 8 4 2001
# 4 2001-01-04 4 6 2001
Затем вы можете приступить к анализу.Вот альтернатива предоставленным подходам, используя vapply
t(vapply(unique(df$Year), function(y) {
i <- .subset2(df, ncol(df)) == y
c(cardioadmission = sum(.subset2(df, 2L)), respiratoryadmission = sum(.subset2(df, 3L)))
}, numeric(2)))
# cardioadmission respiratoryadmission
# 2001 34 21
Данные
df <- structure(list(Date = structure(1:4, .Label = c("2001-01-01",
"2001-01-02", "2001-01-03", "2001-01-04"), class = "factor"),
cardioadmission = c(12, 10, 8, 4), respiratoryadmission = c(6,
5, 4, 6)), class = "data.frame", row.names = c(NA, -4L))