Вот простой способ использования for
loop -
result <- NULL
for(r in seq_len(nrow(df)-2)) {
n <- ifelse(rep(r %% 2 > 0, 2), 2:3, 1:2)
result <- c(result, paste0(df$current[r], df$current[r+n]))
}
result
[1] "A1A2" "A1A3" "B1A2" "B1A3" "A2B2" "A2C1" "A3B2" "A3C1"
Вот еще один способ использования ?outer()
-
result <- NULL
for(r in seq(1, nrow(df)-2, 2)) {
result <- c(result,
c(outer(df$current[r:(r+1)], df$current[(r+2):(r+3)], FUN = paste0))
)
}
result
[1] "A1A2" "B1A2" "A1A3" "B1A3" "A2B2" "A3B2" "A2C1" "A3C1"
Растущий result
подобный вектор - плохая практика, ноне должно иметь значения, если у вас нет большого количества строк.