library(psych)
options(width = 100)
a <- anscombe
a$f1 <- factor(rep(1:2, len = 11))
a$f2 <- factor(rep(1:2, each = 2, len = 11))
describeBy(a, group = a$f1)
## group: 1
##     var n mean   sd median trimmed  mad  min   max range  skew kurtosis   se
## x1    1 6 9.50 3.27  10.50    9.50 2.97 5.00 13.00  8.00 -0.34    -1.90 1.34
## x2    2 6 9.50 3.27  10.50    9.50 2.97 5.00 13.00  8.00 -0.34    -1.90 1.34
## x3    3 6 9.50 3.27  10.50    9.50 2.97 5.00 13.00  8.00 -0.34    -1.90 1.34
## x4    4 6 8.00 0.00   8.00    8.00 0.00 8.00  8.00  0.00   NaN      NaN 0.00
## y1    5 6 7.95 1.69   7.81    7.95 0.81 5.68 10.84  5.16  0.41    -1.03 0.69
## y2    6 6 7.86 1.93   8.94    7.86 0.39 4.74  9.26  4.52 -0.64    -1.65 0.79
## y3    7 6 8.00 2.52   7.63    8.00 1.53 5.73 12.74  7.01  0.92    -0.73 1.03
## y4    8 6 6.74 1.23   6.73    6.74 1.59 5.25  8.47  3.22  0.09    -1.79 0.50
## f1*   9 6 1.00 0.00   1.00    1.00 0.00 1.00  1.00  0.00   NaN      NaN 0.00
## f2*  10 6 1.50 0.55   1.50    1.50 0.74 1.00  2.00  1.00  0.00    -2.31 0.22
## --------------------------------------------------------------------------- 
## group: 2
##     var n  mean   sd median trimmed  mad  min   max range  skew kurtosis   se
## x1    1 5  8.40 3.65   8.00    8.40 1.48 4.00 14.00 10.00  0.36    -1.46 1.63
## x2    2 5  8.40 3.65   8.00    8.40 1.48 4.00 14.00 10.00  0.36    -1.46 1.63
## x3    3 5  8.40 3.65   8.00    8.40 1.48 4.00 14.00 10.00  0.36    -1.46 1.63
## x4    4 5 10.20 4.92   8.00   10.20 0.00 8.00 19.00 11.00  1.07    -0.92 2.20
## y1    5 5  6.96 2.46   6.95    6.96 3.16 4.26  9.96  5.70  0.05    -2.10 1.10
## y2    6 5  7.07 2.29   8.10    7.07 0.99 3.10  8.77  5.67 -0.93    -1.09 1.02
## y3    7 5  6.91 1.26   6.77    6.91 0.52 5.39  8.84  3.45  0.37    -1.46 0.56
## y4    8 5  8.41 2.55   7.91    8.41 1.38 5.76 12.50  6.74  0.57    -1.43 1.14
## f1*   9 5  2.00 0.00   2.00    2.00 0.00 2.00  2.00  0.00   NaN      NaN 0.00
## f2*  10 5  1.40 0.55   1.00    1.40 0.00 1.00  2.00  1.00  0.29    -2.25 0.24
describeBy(a, group = list(a$f1, a$f2))
## : 1
## : 1
##     var n  mean   sd median trimmed  mad   min   max range  skew kurtosis   se
## x1    1 3 11.00 1.00  11.00   11.00 1.48 10.00 12.00  2.00  0.00    -2.33 0.58
## x2    2 3 11.00 1.00  11.00   11.00 1.48 10.00 12.00  2.00  0.00    -2.33 0.58
## x3    3 3 11.00 1.00  11.00   11.00 1.48 10.00 12.00  2.00  0.00    -2.33 0.58
## x4    4 3  8.00 0.00   8.00    8.00 0.00  8.00  8.00  0.00   NaN      NaN 0.00
## y1    5 3  9.07 1.54   8.33    9.07 0.43  8.04 10.84  2.80  0.37    -2.33 0.89
## y2    6 3  9.18 0.07   9.14    9.18 0.01  9.13  9.26  0.13  0.38    -2.33 0.04
## y3    7 3  7.81 0.35   7.81    7.81 0.50  7.46  8.15  0.69 -0.01    -2.33 0.20
## y4    8 3  6.87 1.48   6.58    6.87 1.51  5.56  8.47  2.91  0.19    -2.33 0.85
## f1*   9 3  1.00 0.00   1.00    1.00 0.00  1.00  1.00  0.00   NaN      NaN 0.00
## f2*  10 3  1.00 0.00   1.00    1.00 0.00  1.00  1.00  0.00   NaN      NaN 0.00
## --------------------------------------------------------------------------- 
## : 2
## : 1
##     var n mean   sd median trimmed  mad  min   max range  skew kurtosis   se
## x1    1 3 9.67 3.79   8.00    9.67 1.48 7.00 14.00  7.00  0.35    -2.33 2.19
## x2    2 3 9.67 3.79   8.00    9.67 1.48 7.00 14.00  7.00  0.35    -2.33 2.19
## x3    3 3 9.67 3.79   8.00    9.67 1.48 7.00 14.00  7.00  0.35    -2.33 2.19
## x4    4 3 8.00 0.00   8.00    8.00 0.00 8.00  8.00  0.00   NaN      NaN 0.00
## y1    5 3 7.24 2.58   6.95    7.24 3.16 4.82  9.96  5.14  0.11    -2.33 1.49
## y2    6 3 7.83 0.50   8.10    7.83 0.06 7.26  8.14  0.88 -0.38    -2.33 0.29
## y3    7 3 7.34 1.31   6.77    7.34 0.52 6.42  8.84  2.42  0.35    -2.33 0.76
## y4    8 3 6.90 1.08   7.04    6.90 1.29 5.76  7.91  2.15 -0.12    -2.33 0.62
## f1*   9 3 2.00 0.00   2.00    2.00 0.00 2.00  2.00  0.00   NaN      NaN 0.00
## f2*  10 3 1.00 0.00   1.00    1.00 0.00 1.00  1.00  0.00   NaN      NaN 0.00
## --------------------------------------------------------------------------- 
## : 1
## : 2
##     var n mean   sd median trimmed  mad  min   max range  skew kurtosis   se
## x1    1 3 8.00 4.36   6.00    8.00 1.48 5.00 13.00  8.00  0.36    -2.33 2.52
## x2    2 3 8.00 4.36   6.00    8.00 1.48 5.00 13.00  8.00  0.36    -2.33 2.52
## x3    3 3 8.00 4.36   6.00    8.00 1.48 5.00 13.00  8.00  0.36    -2.33 2.52
## x4    4 3 8.00 0.00   8.00    8.00 0.00 8.00  8.00  0.00   NaN      NaN 0.00
## y1    5 3 6.83 1.01   7.24    6.83 0.50 5.68  7.58  1.90 -0.34    -2.33 0.58
## y2    6 3 6.54 2.03   6.13    6.54 2.06 4.74  8.74  4.00  0.19    -2.33 1.17
## y3    7 3 8.18 3.95   6.08    8.18 0.52 5.73 12.74  7.01  0.38    -2.33 2.28
## y4    8 3 6.62 1.25   6.89    6.62 1.22 5.25  7.71  2.46 -0.21    -2.33 0.72
## f1*   9 3 1.00 0.00   1.00    1.00 0.00 1.00  1.00  0.00   NaN      NaN 0.00
## f2*  10 3 2.00 0.00   2.00    2.00 0.00 2.00  2.00  0.00   NaN      NaN 0.00
## --------------------------------------------------------------------------- 
## : 2
## : 2
##     var n  mean   sd median trimmed  mad  min   max range skew kurtosis   se
## x1    1 2  6.50 3.54   6.50    6.50 3.71 4.00  9.00  5.00    0    -2.75 2.50
## x2    2 2  6.50 3.54   6.50    6.50 3.71 4.00  9.00  5.00    0    -2.75 2.50
## x3    3 2  6.50 3.54   6.50    6.50 3.71 4.00  9.00  5.00    0    -2.75 2.50
## x4    4 2 13.50 7.78  13.50   13.50 8.15 8.00 19.00 11.00    0    -2.75 5.50
## y1    5 2  6.54 3.22   6.54    6.54 3.37 4.26  8.81  4.55    0    -2.75 2.28
## y2    6 2  5.93 4.01   5.93    5.93 4.20 3.10  8.77  5.67    0    -2.75 2.83
## y3    7 2  6.25 1.22   6.25    6.25 1.28 5.39  7.11  1.72    0    -2.75 0.86
## y4    8 2 10.67 2.59  10.67   10.67 2.71 8.84 12.50  3.66    0    -2.75 1.83
## f1*   9 2  2.00 0.00   2.00    2.00 0.00 2.00  2.00  0.00  NaN      NaN 0.00
## f2*  10 2  2.00 0.00   2.00    2.00 0.00 2.00  2.00  0.00  NaN      NaN 0.00
library(plyr)
ddply(a, .(f1), numcolwise(winsor.mean))
##   f1   x1   x2   x3   x4    y1    y2    y3    y4
## 1  1 9.50 9.50 9.50 8.00 7.793 8.068 7.288 6.668
## 2  2 8.08 8.08 8.08 8.44 6.866 7.639 6.794 8.029
ddply(a, .(f1, f2), numcolwise(winsor.mean))
##   f1 f2   x1   x2   x3   x4    y1    y2    y3     y4
## 1  1  1 11.0 11.0 11.0  8.0 8.774 9.162 7.808  6.754
## 2  1  2  7.2  7.2  7.2  8.0 6.996 6.374 7.342  6.726
## 3  2  1  9.0  9.0  9.0  8.0 7.126 7.940 7.114  6.958
## 4  2  2  6.5  6.5  6.5 13.5 6.535 5.935 6.250 10.670