先日のやり方は間違ってました。
分割表の確率の計算方法が,期待値算出になってました。
正しくは,実際に得られたデータの比率を計算するだけです。
まず,以下の関数を再度定義。

sqr.obs<-function(x){
n<-sum(x)
pob<-x/n
print(pob)
}

で,先日の例をおさらい。

> data
     [,1] [,2]
[1,]    5    7
[2,]   13   12
> sqr.obs(data)->data2
          [,1]      [,2]
[1,] 0.1351351 0.1891892
[2,] 0.3513514 0.3243243
> ES.w2(data2)->w1
> pwr.chisq.test(w=w1,df=(2-1)*(2-1),N=37)

     Chi squared power calculation 

              w = 0.09678053
              N = 37
             df = 1
      sig.level = 0.05
          power = 0.09055218

 NOTE: N is the number of observations 

まぁあんまり変わらないけど,検出力はやはり低いですね。

んじゃ,サンプルサイズが増えれば,いいのでは?
と思い。

> data<-matrix(c(55,77,133,122),ncol=2,byrow=T)
> data
     [,1] [,2]
[1,]   55   77
[2,]  133  122
> sqr.obs(data)->data2
          [,1]      [,2]
[1,] 0.1421189 0.1989664
[2,] 0.3436693 0.3152455
> ES.w2(data2)->w1
> pwr.chisq.test(w=w1,df=(2-1)*(2-1),N=sum(data))

     Chi squared power calculation 

              w = 0.09950278
              N = 387
             df = 1
      sig.level = 0.05
          power = 0.4990418

 NOTE: N is the number of observations 

なるほど,確かに検出力が上がってますね。それでも一般に推奨される0.8まではほど遠いです。
でも,

> chisq.test(data)

        Pearson's Chi-squared test with Yates' continuity correction

data:  data 
X-squared = 3.4232, df = 1, p-value = 0.06429

このようにp値もかなり低い値になっている。
2*3の場合には?

> d<-matrix(c(5,13,7,12,5,18),ncol=3)
> d
     [,1] [,2] [,3]
[1,]    5    7    5
[2,]   13   12   18
> sqr.obs(d)
           [,1]      [,2]       [,3]
[1,] 0.08333333 0.1166667 0.08333333
[2,] 0.21666667 0.2000000 0.30000000

> pwr.chisq.test(w=ES.w2(obs.d),df=(2-1)*(3-1),N=60)

     Chi squared power calculation 

              w = 0.1398043
              N = 60
             df = 2
      sig.level = 0.05
          power = 0.1482380

 NOTE: N is the number of observations 

となる。