I have to write a one sample proportion Z test function in R. I need to have the sample proportion be the proportion of data in the first factor level. For example,
   data <- factor(c(NA, rep("a", 60), rep("b", 40)))
   table(data)
   a b
   60 40
And I need the sample proportion to be 60/100. Here is portion of my code and it is returning an error saying unexpected symbol in mtab <- addmargins(table(data)).
hyp_test <- function(data, hyp_val=NULL, alpha, alternative="two-sided",graph=FALSE) {
  n <- sum(!is.na(data))
  ifelse(is.factor(data),
     mtab <- addmargins(table(data))
     phat <- mtab[1]/mtab[3]
     qhat <- 1 - phat
     if(length(hyp_val) > 0) { 
       q <- 1-hyp_val
       SE.phat <- sqrt((hyp_val*q)/n) 
       ts.z <- (phat - hyp_val)/SE.phat
       p.val <- pnorm(ts.z)*2
       if(alternative=="less") {
         p.val <- pnorm(ts.z)
       }
       if(alternative=="greater") {
         p.val <- 1 - p.val
       }
     } 
Any help would be much appreciated. I need to basically find out how to find the sample proportion.
 
     
    