2016-05-08 4 views
2

Следующий код принимает вектор V1 и создает один загрузочный пример BV1. Я хотел бы запустить этот i раз и поместить все векторы BVi в матрицу MV. Если возможно, используйте функцию семейства apply, а не петлю for.Выполнить функцию несколько раз и создать матрицу с результатами

V1 <- c(0.18, 0.2, 0.24, 0.35, -0.22, -0.17, 0.28, -0.28, -0.14, 0.03, 0.87, -0.2, 0.06, -0.1, -0.72, 0.18, 0.01, 0.31, -0.36, 0.61, -0.16, -0.07, -0.13, 0.01, -0.09, 0.26, -0.14, 0.08, -0.62, -0.2, 0.3, -0.21, -0.11, 0.05, 0.06, -0.28, -0.27, 0.17, 0.42, -0.05, -0.15, 0.05, -0.07, -0.22, -0.34, 0.16, 0.34, 0.1, -0.12, 0.24, 0.45, 0.37, 0.61, 0.9, -0.25, 0.02) 
BV1 <- sample(V1, length(V1), replace=TRUE) 

Затем я буду использовать эту матрицу для расчета распределения загрузочной сводной статистики. Спасибо за вашу помощь.

ответ

1

Мы можем использовать replicate, чтобы повторить sample 'n' раз и вывести как matrix.

replicate(4, sample(V1, length(V1), replace=TRUE)) 

Если мы посмотрим на replicate

функции (п, выражение, упрощать = "массив") sapply (целое число (п), eval.parent (запасной (функция (...) выраж)), упростить = упростить)

использует sapply (так потребность OP для apply семейства функций покрыта)