# Factors

x<-c(0,0,0,1,1,0,1,0,1,0,1) # Gender (0/1)
y<-c(35,42,27,55,45,33,61,42,55,37,48) # age in years
data<-as.data.frame(cbind(x,y))

data # view data
##    x  y
## 1  0 35
## 2  0 42
## 3  0 27
## 4  1 55
## 5  1 45
## 6  0 33
## 7  1 61
## 8  0 42
## 9  1 55
## 10 0 37
## 11 1 48
c(xbar=mean(data$x),ybar=mean(data$y))
##       xbar       ybar 
##  0.4545455 43.6363636
tapply(data$y,data$x,mean) # mean values
##    0    1 
## 36.0 52.8
data$male<-factor(data$x,
                  levels = c(0,1),
                  labels=c("female","male"))

c(xbar=mean(data$x),ybar=mean(data$y), males=mean(data$male))
## Warning in mean.default(data$male): argument is not numeric or logical:
## returning NA
##       xbar       ybar      males 
##  0.4545455 43.6363636         NA
tapply(data$y,data$male,mean)
## female   male 
##   36.0   52.8
mean(data$male)
## Warning in mean.default(data$male): argument is not numeric or logical:
## returning NA
## [1] NA
mean(as.numeric(data$male))
## [1] 1.454545
levels((data$male))
## [1] "female" "male"
data$gender<-as.numeric((data$male))

c(xbar=mean(data$x),ybar=mean(data$y), males=mean(data$gender))
##       xbar       ybar      males 
##  0.4545455 43.6363636  1.4545455
data
##    x  y   male gender
## 1  0 35 female      1
## 2  0 42 female      1
## 3  0 27 female      1
## 4  1 55   male      2
## 5  1 45   male      2
## 6  0 33 female      1
## 7  1 61   male      2
## 8  0 42 female      1
## 9  1 55   male      2
## 10 0 37 female      1
## 11 1 48   male      2
summary(glm(male~y, data=data,family = binomial(link = "logit")))
## Warning: glm.fit: algorithm did not converge
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## 
## Call:
## glm(formula = male ~ y, family = binomial(link = "logit"), data = data)
## 
## Deviance Residuals: 
##        Min          1Q      Median          3Q         Max  
## -1.601e-05  -2.110e-08  -2.110e-08   2.110e-08   2.319e-05  
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)
## (Intercept)   -650.18  768839.69  -0.001    0.999
## y               14.94   17649.64   0.001    0.999
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1.5158e+01  on 10  degrees of freedom
## Residual deviance: 1.0503e-09  on  9  degrees of freedom
## AIC: 4
## 
## Number of Fisher Scoring iterations: 25
summary(glm(x~y, data=data,family = binomial(link = "logit")))
## Warning: glm.fit: algorithm did not converge

## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## 
## Call:
## glm(formula = x ~ y, family = binomial(link = "logit"), data = data)
## 
## Deviance Residuals: 
##        Min          1Q      Median          3Q         Max  
## -1.601e-05  -2.110e-08  -2.110e-08   2.110e-08   2.319e-05  
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)
## (Intercept)   -650.18  768839.69  -0.001    0.999
## y               14.94   17649.64   0.001    0.999
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1.5158e+01  on 10  degrees of freedom
## Residual deviance: 1.0503e-09  on  9  degrees of freedom
## AIC: 4
## 
## Number of Fisher Scoring iterations: 25
# summary(glm(gender~y, data=data,family = binomial(link = "logit")))