Одиночные именованные переменные не слишком хорошо подходят для "зацикливания".Давайте вместо этого используем list()
векторов:
vecs <- list(
a = c(200,204,209,215),
b = c(215,220,235,245),
c = c(230,236,242,250),
d = c(240,242,243,267)
)
Это позволяет нам применять функцию ко всем парам, используя combn
scale_diff <- function(subset) {
z <- scale(subset[[1]] - subset[[2]])
colnames(z) <- paste(names(subset), collapse = " - ")
z
}
z_scores <- combn(vecs, 2, scale_diff, simplify = FALSE)
Теперь z_scores
- это список6 матриц (вектор столбцов).Имена столбцов показывают, какие векторы были вычтены до масштабирования.