簡単にシミュレーション

周辺度数を与えて、ランダムに2x3表を作る

sample2x3<-function(m1=c(100,200),m2=c(50,100,150),n=1){
 #出力用の行列を用意する
 answer<-matrix(rep(0,n*6),nrow=n)
 sum<-sum(m1)
 # 第1群と第2群の人数和を出す
 m1m2<-m2[1]+m2[2]
 # 1から総人数のシークエンスを作る
 x<-seq(from=1,to=sum)

 # 試行回数のループ
 for(i in 1:n){
  # sample関数を使って、ケース群を抜きだす
  s<-sample(x,m1[1],replace=FALSE)
  # 抜き出されたケース群のうち、第1カテゴリの人数を数えて格納する
  answer[i,1]<-sum(s<m2[1])
  # 抜き出されたケース群のうち、第1カテゴリ・第2カテゴリのいずれかの人数を数え、先に出した、第1カテゴリの人数を引くことで、ケースの第2カテゴリの人数を出す
  answer[i,2]<-sum(s<m1m2)-answer[i,1]
  # テーブルに2セルが決まったので、残りの4セルは以下で決まる
  answer[i,3]<-m1[1]-answer[i,1]-answer[i,2]
  answer[i,4]<-m2[1]-answer[i,1]
  answer[i,5]<-m2[2]-answer[i,2]
  answer[i,6]<-m2[3]-answer[i,3]
 }
 write.table(answer,file="TXTFILE1.txt",sep="\t",quote=F,row.names=F,col.names=F)
 return(answer)

}