Я пытаюсь найти более быстрый способ итеративного свертывания выбранных групп во фрейме данных.Я в настоящее время перебираю приобретения, даты и переменные.Я хотел бы векторизовать это, если это возможно.
Учитывая набор идентификаторов [1,2], я хотел бы взять все значения для идентификатора 2 и добавить его в идентификатор id1.Кроме того, после этого я хотел бы удалить id2 из набора данных.
Создание данных для корректировки
dates <- c("Q1", "Q2", "Q3", "Q4")
ids <- c(1,2,3,4)
x1 <- seq(from=1, by=1, length=16)
x2 <- seq(from=1, by=2, length=16)
dat <- expand.grid(dates=dates, ids=ids)
dat <- data.frame(dat, x1, x2)
Создание данных для корректировки с помощью
ref <- data.frame(acquirer=c(2,3), acquired=c(1,4))
медленная тройкадля итеративного свертывания
for(i in 1:nrow(ref)){
for(j in c("x1", "x2")){
for(z in c("Q1", "Q2", "Q3", "Q4")){
dat[dat$ids==ref$acquirer[i] & dat$dates==z, j] <-
dat[dat$ids==ref$acquirer[i] & dat$dates==z, j] +
dat[dat$ids==ref$acquired[i] & dat$dates==z, j]
dat[dat$ids==ref$acquired[i] & dat$dates==z, j] <- NA
}
}
}