У меня есть аналогичный набор данных для следующего
Для каждого уникального года я хотел бы суммировать по всем договорам каждый уникальный идентификатор в наборе данных.Каков наилучший подход к такой проблеме?Мой набор данных намного больше, чем пример здесь.Я слышал, что for loops
неэффективны для этого.
id <- rep(1:3, 4)
year <- (c(c(rep(1990, 3)), c(rep(1991, 3)), c(rep(1992, 3)), c(rep(1993, 3))) )
treaty <- c(1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1 )
data <- cbind(id, year, treaty)
Я пробовал что-то вроде этого, но мне не удалось, чтобы это работало.Могу ли я сделать это с пакетом plyr
или dplyr
?
for (i in unique(data$year)){
for (j in unique(data$year)){
prior_temp <- sum(dat$treaty[which(dat$id==j & yearunique[1:i])])
}
dat$prior <- prior_temp
}