df <- structure(list(group = structure(c(2L, 1L, 1L, 3L, 1L, 4L, 1L,
1L), .Label = c("", "Group1", "Group2", "Group3"), class = "factor"),
year = c(2013L, 2014L, 2015L, 2013L, 2014L, 2013L, 2014L,
2015L), NSW = c(500L, 601L, 410L, 508L, 694L, 305L, 122L,
210L), VIC = c(501L, 520L, 435L, 501L, 780L, 501L, 440L,
235L), QLD = c(985L, 999L, 894L, 806L, 899L, 985L, 704L,
523L)), class = "data.frame", row.names = c(NA, -8L))
df_list <- split(df, as.factor(df$group))
split поможет вам создать различные списки из групп, используя baseR