У меня есть две матрицы 3x3, и я хотел бы случайным образом выбрать элемент из каждой строки (один и тот же соответствующий элемент в обеих матрицах) и записать эти «выбранные» значения в новую матрицу.
Оттуда я хотел бы повторить этот процесс 5 раз, каждый раз добавляя к матрице, чтобы в итоге у меня была матрица 3x10 случайно выбранных значений.
Я попытаюсь проиллюстрировать, что я имею в виду:
У меня есть две матрицы А и В.
> A = matrix( c(4,7,1,9,4,2,1,3,9), nrow = 3, ncol = 3)
> A
[,1] [,2] [,3]
[1,] 4 9 1
[2,] 7 4 3
[3,] 1 2 9
> B = matrix( c(2, 4, 3, 1, 5, 7, 4, 3, 2), nrow=3, ncol=3)
> B
[,1] [,2] [,3]
[1,] 2 1 4
[2,] 4 5 3
[3,] 3 7 2
Затем я хочу случайным образом выбрать целое число от 1 до 3 (потому что в каждой из матриц есть 3 столбца)
> random <- sample(1:3, length)
> random
[1] 1 3 2
поскольку числа равны 1,3 и 2, я хочу создать вектор 1-го элемента строки 1, 3-го элемента строки 2 и 2-го элемента строки три из обеих матриц A и B. Это будет новая матрица С.
> C = matrix(c(4,3,2,2,3,7), nrow = 3, ncol = 2)
> C
[,1] [,2]
[1,] 4 2
[2,] 3 3
[3,] 2 7
После этого я хотел бы зациклить процесс 5 раз, каждый раз добавляя созданную матрицу на сторону существующей матрицы «C».
Я новичок в R, поэтому мой вопрос: как мне включить случайный выбор и цикл для получения желаемого результата? Любая помощь или совет очень ценятся, спасибо.
(Я хотел бы воссоздать это в гораздо большем масштабе)
ind <- sample(n) + (1:n-1)*ncol(A)
. 17.07.2015