У меня есть следующие данные:
A1 <- c(1, 2, 3)
A2 <- c(2, 3, 4)
A3 <- c(3, 3, 2)
A4 <- c(2, 2, 3)
A5 <- c(4, 3, 5)
A6 <- c(6, 7, 2)
A7 <- c(1, 2, 5)
A8 <- c(2, 5, 5)
A9 <- c(2, 3, 5)
A10 <- c(7, 4, 2)
A11 <- c(7, 3, 2)
A12 <- c(9, 2, 1)
A13 <- c(1, 2, 5)
A14 <- c(2, 5, 5)
A15 <- c(2, 3, 5)
A16 <- c(7, 4, 2)
A17 <- c(7, 3, 2)
A18 <- c(9, 2, 1)
df <- cbind(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
> df
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18
[1,] 1 2 3 2 4 6 1 2 2 7 7 9 1 2 2 7 7 9
[2,] 2 3 3 2 3 7 2 5 3 4 3 2 2 5 3 4 3 2
[3,] 3 4 2 3 5 2 5 5 5 2 2 1 5 5 5 2 2 1
Я хотел бы сгруппировать столбцы в группы по 6, а затем в каждой из этих групп разделить первые 3 столбца на вторые 3 (т.е.А1 / А4, А2 / А5, А3 / А6, А7 / А10, А8 / А11, А9 / А12 и т. Д.), Чтобы я получил новые столбцы с соотношениями (см. Ниже).
> df_new
B1 B2 B3 B4 B5 B6 B7 B8 B9
[1,] 0.5 0.5 0.5000000 0.1428571 0.2857143 0.2222222 0.1428571 0.2857143 0.2222222
[2,] 1.0 1.0 0.4285714 0.5000000 1.6666667 1.5000000 0.5000000 1.6666667 1.5000000
[3,] 1.0 0.8 1.0000000 2.5000000 2.5000000 5.0000000 2.5000000 2.5000000 5.0000000
Есть ли быстрый и эффективный способ сделать это?Спасибо!