The following code will estimate the recessive allele frequency from the counts of the dominant phenotype assuming Hardy Weinberg (see slides 80-81).

n<-1000
naa<-23
dat<-c(n-naa,naa)
n<-sum(dat)
(pa1<-(dat[2]/n)^.5)
## [1] 0.1516575
em.ra<-function(dat,ini=NULL,print.it=TRUE,eps=0.0001){
  if (is.null(ini)) pa2<-runif(1) else pa2<-ini 
  dif<-1
  acc<-0
  while (dif>=eps){
    acc<-acc+1
    pa2n<-2*(n*pa2+dat[2])/(2*n*(1+pa2))
    dif<-abs(pa2n-pa2)
    if (print.it) cat(paste(acc," : ",round(pa2,digits=3)," -> ",round(pa2n,digits=3),"\n"))
    pa2<-pa2n
  }
  pa2
}

em.ra(dat)
## 1  :  0.196  ->  0.183 
## 2  :  0.183  ->  0.174 
## 3  :  0.174  ->  0.168 
## 4  :  0.168  ->  0.163 
## 5  :  0.163  ->  0.16 
## 6  :  0.16  ->  0.158 
## 7  :  0.158  ->  0.156 
## 8  :  0.156  ->  0.155 
## 9  :  0.155  ->  0.154 
## 10  :  0.154  ->  0.153 
## 11  :  0.153  ->  0.153 
## 12  :  0.153  ->  0.153 
## 13  :  0.153  ->  0.152 
## 14  :  0.152  ->  0.152 
## 15  :  0.152  ->  0.152 
## 16  :  0.152  ->  0.152 
## 17  :  0.152  ->  0.152
## [1] 0.1518697