I was searching for a function in R to perform a chi-squared test for hardy-weinberg equilibrium.

Strait-forward would be to compute a chi-squared-value by my own and then take a look at a p-value with a given degree of freedom:

```
nAA=18
nAa=104
naa=109
n=nAA+nAa+naa
pA=(2*nAA+nAa)/(2*n)
pa=1-pA
obs= c(nAA,nAa,naa)
exp=c(n*pA*pA,2*n*pA*pa,n*pa^2)
sum(((obs-exp)^2)/exp)
[1] 1.001318
1-pchisq(1.001318,df=1)
[1] 0.3169918
```

My degrees of freedom are 1, as number of genotypes = 3 and of alleles = 2 (df=3-2=1). So, p-value is 0.31699, I am happy, everything is in HWE. Then I decided to have a look if there is a function in R for that within standard packages and have found the following:

```
chisq.test(obs, p = exp/sum(exp)) 
Chi-squared test for given probabilities data: obs X-squared = 1.0013, df = 2, p-value = 0.6061
```

It seems that `chisq.test` is not suitable for HWE as it computes the df as 2. Are there any functions that can compute the `chisq.test` for HWE problems?

Thank you.
<p>A quick search turns up the <a href="http://cran.r-project.org/web/packages/HardyWeinberg/HardyWeinberg.pdf">HardyWeinberg</a> R package. Specifically, <code>HWChisq()</code> performs the test you want.</p>
