summarise
require(plyr)
ddply(FAfinal, "gender", summarise, mean = mean(symmetry, na.rm = TRUE))
  gender        mean
1      1 -0.10718687
2      2  0.09220376
group <- c(rep('A', 8), rep('B', 15), rep('C', 6))
sex   <- sample(c("M", "F"), size=29, replace=T)
age   <- runif(n=29, min=18, max=54)
dfx   <- data.frame(group, sex, age)
 
# Note the use of the '.' function to allow 
# group and sex to be used without quoting
 
ddply(dfx, .(group, sex), summarize, 
    mean = round(mean(age), 2), 
    sd   = round(sd(age), 2)
)
 
#   group sex  mean    sd
# 1     A   F 35.89  8.53
# 2     A   M 38.01 15.09
# 3     B   F 39.08 10.79
# 4     B   M 37.38  9.55
# 5     C   F 30.01    NA
# 6     C   M 34.78 11.50

An example using a formula for .variables
ddply(baseball[1:100,], .variables= ~year, .fun=nrow)

Applying two functions; nrow and ncol

ddply(baseball, .(lg), c("nrow", "mean"))

Calculate mean runs batted in for each year

 rbi <- ddply(baseball, .(year), summarise, 
   mean_rbi = mean(rbi, na.rm = TRUE))

Plot a line chart of the result

plot(mean_rbi ~year, type="l", data=rbi))