r2dtable
Random 2way Tables with Given Marginals
Generate random 2way tables with given marginals using Patefield's algorithm.
 Keywords
 distribution
Usage
r2dtable(n, r, c)
Arguments
 n
 a nonnegative numeric giving the number of tables to be drawn.
 r
 a nonnegative vector of length at least 2 giving the row
totals, to be coerced to
integer
. Must sum to the same asc
.  c
 a nonnegative vector of length at least 2 giving the column
totals, to be coerced to
integer
.
Value

A list of length
n
containing the generated tables as its
components.
References
Patefield, W. M. (1981) Algorithm AS159. An efficient method of generating r x c tables with given row and column totals. Applied Statistics 30, 9197.
Examples
library(stats)
## Fisher's Tea Drinker data.
TeaTasting <
matrix(c(3, 1, 1, 3),
nrow = 2,
dimnames = list(Guess = c("Milk", "Tea"),
Truth = c("Milk", "Tea")))
## Simulate permutation test for independence based on the maximum
## Pearson residuals (rather than their sum).
rowTotals < rowSums(TeaTasting)
colTotals < colSums(TeaTasting)
nOfCases < sum(rowTotals)
expected < outer(rowTotals, colTotals, "*") / nOfCases
maxSqResid < function(x) max((x  expected) ^ 2 / expected)
simMaxSqResid <
sapply(r2dtable(1000, rowTotals, colTotals), maxSqResid)
sum(simMaxSqResid >= maxSqResid(TeaTasting)) / 1000
## Fisher's exact test gives p = 0.4857 ...
Community examples
Looks like there are no examples yet.