text: user3108: I have next SNPs data.frame structure
  > str(SNPs)
  'data.frame':   1703 obs. of  4 variables:
   $ group: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
   $ rs1  : Factor w/ 3 levels "D/D","I/D","I/I": 1 1 2 3 3 2 1 1 1 1 ...
   $ rs2  : Factor w/ 3 levels "a/a","a/b","b/b": 3 3 2 3 3 2 2 3 3 2 ...
   $ rs3  : Factor w/ 3 levels "G/G","G/T","T/T": 2 1 2 1 1 3 1 1 2 1 ...
   ...other rs
  
  
  > head(SNPs)
    group rs1 rs2 rs3 ...other rs
  1     A D/D b/b G/T
  2     A D/D b/b G/G
  3     A I/D a/b G/T
  4     A I/I b/b G/G
  5     A I/I b/b G/G
  6     A I/D a/b T/T
  
  For example, I noticed that rs5 4b/4a and rs6 G/G in group A very often occur together (see below). In group B they very often occur together too. So I want to know - is it statistical regularity or not.
  I can create table with all pairs in both groups
  > SNPs$rs5_rs6 <- paste(SNPs$rs5, SNPs$rs6)
  > tmp <- table(SNPs$rs5_rs6, SNPs$group)
  > tmp
  
                A   B
    4a/4a G/G   1  20
    4b/4a G/G  31  83
    4b/4a G/T  14  51
    4b/4a T/T   1   0
    4b/4b G/G  37 106
    4b/4b G/T  35 119
    4b/4b T/T  11  31
  
  So, now I need compare (find p-value) group A and group B: 4a/4a G/G in group A vs 4a/4a G/G in group B, 4b/4a G/G in group A vs 4b/4a G/G in group B, 4b/4a G/T in group A vs 4b/4a G/T in group B and etc. Only this pairs/
  How can I do that?
  I need p-values for all 
  > tmp
  
                A   B
    4a/4a G/G   1  20 - p-value?
    4b/4a G/G  31  83 - p-value?
    4b/4a G/T  14  51 - p-value?
    4b/4a T/T   1   0 - p-value?
    4b/4b G/G  37 106 - p-value?
    4b/4b G/T  35 119 - p-value?
    4b/4b T/T  11  31 - p-value?
  
  
  user581: You can get standardised residuals from chisq.test and convert these to p-values, but it's not recommended. The frequencies of each genotype depend on the counts of all other genotypes, so the p-values aren't independent and they aren't corrected for multiple testing, but if you must:  
  pnorm(-abs(chisq.test(tmp[,c('A','B')])$stdres)))
  
  
original_text: 3108: <p>I have next <code>SNPs</code> data.frame structure</p>
  
  <pre><code>&gt; str(SNPs)
  'data.frame':   1703 obs. of  4 variables:
   $ group: Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
   $ rs1  : Factor w/ 3 levels "D/D","I/D","I/I": 1 1 2 3 3 2 1 1 1 1 ...
   $ rs2  : Factor w/ 3 levels "a/a","a/b","b/b": 3 3 2 3 3 2 2 3 3 2 ...
   $ rs3  : Factor w/ 3 levels "G/G","G/T","T/T": 2 1 2 1 1 3 1 1 2 1 ...
   ...other rs
  
  
  &gt; head(SNPs)
    group rs1 rs2 rs3 ...other rs
  1     A D/D b/b G/T
  2     A D/D b/b G/G
  3     A I/D a/b G/T
  4     A I/I b/b G/G
  5     A I/I b/b G/G
  6     A I/D a/b T/T
  </code></pre>
  
  <p>For example, I noticed that <code>rs5 4b/4a</code> and <code>rs6 G/G</code> in <code>group A</code> very often occur together (see below). In <code>group B</code> they very often occur together too. So I want to know - is it statistical regularity or not.</p>
  
  <p>I can create table with all pairs in both groups</p>
  
  <pre><code>&gt; SNPs$rs5_rs6 &lt;- paste(SNPs$rs5, SNPs$rs6)
  &gt; tmp &lt;- table(SNPs$rs5_rs6, SNPs$group)
  &gt; tmp
  
                A   B
    4a/4a G/G   1  20
    4b/4a G/G  31  83
    4b/4a G/T  14  51
    4b/4a T/T   1   0
    4b/4b G/G  37 106
    4b/4b G/T  35 119
    4b/4b T/T  11  31
  </code></pre>
  
  <p>So, now I need compare (find p-value) group A and group B: <code>4a/4a G/G</code> in group A vs <code>4a/4a G/G</code> in group B, <code>4b/4a G/G</code> in group A vs <code>4b/4a G/G</code> in group B, <code>4b/4a G/T</code> in group A vs <code>4b/4a G/T</code> in group B and etc. Only this pairs/</p>
  
  <p>How can I do that?
  I need p-values for all </p>
  
  <pre><code>&gt; tmp
  
                A   B
    4a/4a G/G   1  20 - p-value?
    4b/4a G/G  31  83 - p-value?
    4b/4a G/T  14  51 - p-value?
    4b/4a T/T   1   0 - p-value?
    4b/4b G/G  37 106 - p-value?
    4b/4b G/T  35 119 - p-value?
    4b/4b T/T  11  31 - p-value?
  </code></pre>
   581: <p>You can get standardised residuals from <code>chisq.test</code> and convert these to p-values, but it's <a href="https://stats.stackexchange.com/questions/129194/converting-chi-square-adjusted-residuals-to-p-values">not recommended</a>. The frequencies of each genotype depend on the counts of all other genotypes, so the p-values aren't independent and they aren't corrected for multiple testing, but if you must:  </p>
  
  <pre><code>pnorm(-abs(chisq.test(tmp[,c('A','B')])$stdres)))
  </code></pre>
  