У меня есть матрица с n столбцами и 2 строками. Но для каждого столбца я хотел бы выбрать случайное число. Я искал об этом, но ничего не получил. На данный момент я использую очень маленькие матрицы, но мой код будет применяться к большим матрицам.

У меня есть эта матрица (будут добавлены дополнительные столбцы)

          [,1]     [,2]
fcMax 2.391416 1.390129
fcMin 2.316555 1.374918

И я хочу получить вектор с dim = n (в данном случае 2, количество столбцов), который создается путем выбора случайного числа для каждого столбца.

1
Rebeca Solórzano 28 Окт 2020 в 22:36

2 ответа

Лучший ответ

Мы можем перебрать столбец с помощью apply, а затем использовать sample

 apply(m1, 2, sample, 1)
0
akrun 28 Окт 2020 в 22:09

Это должно работать:

rand_row = sample(1:nrow(your_matrix), size = ncol(your_matrix), replace = TRUE)
result = your_matrix[cbind(rand_row, 1:ncol(your_matrix))]
0
Gregor Thomas 28 Окт 2020 в 19:44