Я хотел бы создать случайные двусторонние таблицы сопряженности с заданными фиксированными маргинальными строками и столбцами. Предположим, у меня есть такая таблица:
A C G T
A 79 6 13 53
C 16 7 6 17
G 9 3 1 6
T 58 28 18 114
с заданными маргинальными строками:
A C G T
151 46 19 218
и поля столбцов:
A C G T
162 44 38 190
Я хотел бы создать таблицу случайных ситуаций, например:
A C G T
A 49 16 10 76
C 23 2 6 15
G 11 0 1 7
T 79 26 21 92
, который сохраняет эти маргиналы.
Поскольку в этом случае n не слишком велико, я попытался приблизиться к этому, "разомкнув" маргинальные векторы, т. Е. Преобразовав маргиналы в векторы вида
A A A ...C C C ... G G G ... T T T
, а затем переставлять и складывать их.
Мой нынешний метод «развязывания» маргиналов весьма неестественный и неэффективный, и мне было любопытно узнать, есть ли лучший способ. Некоторые встроенные функции должны создавать случайные таблицы на случай непредвиденных обстоятельств, например, chisq.test когда simulate.p.value = TRUE. Встроено ли построение таблицы случайных ситуаций?
Заранее спасибо за любые предложения.