Предположим, что у меня есть матрица 20 X 5, я хотел бы выбрать подмножества матрицы и выполнить некоторые вычисления с ними. Далее предположим, что каждая суб-матрица 7 X 5. Я мог бы, конечно, сделатьВыберите подмножество комбинаций
ncomb <- combn(20, 7)
, который дает мне все возможные комбинации 7 индексов строк, и я могу использовать их для получения суб-матриц. Но с небольшой матрицей 20 X 5 уже существует 77520 возможных комбинаций. Поэтому я хотел бы случайным образом пробовать некоторые из комбинаций, например, 5000 из них.
Одна из возможностей заключается в следующем:
ncomb <- combn(20, 7)
ncombsub <- ncomb[, sample(77520, 5000)]
Другими словами, я могу получить все возможные комбинации, а затем случайным образом выбирать только 5000 комбинаций. Но я думаю, что было бы сложно вычислить все возможные комбинации, если бы у меня была большая матрица, скажем, 100 X 7.
Так что я задаюсь вопросом, есть ли способ получить подмножества комбинаций без предварительного получения всех возможных комбинаций.
Да, я думаю, что это возможно путем изменения 'combn 'или написать свою собственную функцию (что может быть проще). Придумать алгоритм для этого и реализовать его не должно быть сложно. – Roland
Возможно, вы захотите увидеть соответствующую запись [здесь] (http://stackoverflow.com/questions/4493287/generating-a-very-large-matrix-of-string-combinations-using-combn-and-bigmemor) – Metrics
@ Roland I закончил тем, что модифицировал 'combn()', как вы сказали. Работает хорошо. – Alex