Вы можете сделать это на удивление легко, если поймете, что вы можете подмножество данных с помощью ["string"]
. Этот первый пример показывает, как это работает:
for (i in 1:12) {
month <- paste0("month", ((i-1) %% 3)+1, "_emplvl")
thisqtr <- ( (i-1) %/% 3)+1
cat(month, " ", thisqtr, "\n")
}
Теперь решение остается теоретическим. Без образца ваших данных я вынужден "теоретизировать". Но он должен показать вам, как это работает, и даже если он все еще не работает, он достаточно близок, чтобы вы могли найти свой новый с этим.
for (i in 1:12) {
month <- paste0("month", ((i-1) %% 3)+1, "_emplvl")
thisqtr <- ( (i-1) %/% 3)+1
df2[[paste0("emp_", i)]] <- df[[month]][which(df$qtr == thisqtr)]
}