On Tue, 6 Aug 2013, David Winsemius wrote:

Look at the code. You are attributing behavior to `summaryBy` that should be ascribed to `print.data.frame`, and to `format.data.frame`. Your function is returning a numeric vector and getting displayed by `print.default`.


Thanks! That's the thing I wasn't getting. I spent so many years in the world of Octave/MATLAB that I often forget that function output in R is often in the form of a neat data frame, but I do like the R way better.

Using print.data.frame() and specifying digits=3 or digits=4, I get the appearance in the output that I was looking for.

Example:

sumtab <- summaryBy(Age ~ Generation + Zygosity + Sex, data=x, 
FUN=descriptivefun, na.rm=T, order=T)
str(sumtab)
'data.frame':   8 obs. of  12 variables:
 $ Generation: Factor w/ 2 levels "Offspring","Parent": 1 1 1 1 2 2 2 2
 $ Zygosity  : Factor w/ 2 levels "DZ","MZ": 1 1 2 2 1 1 2 2
 $ Sex       : Factor w/ 2 levels "Female","Male": 1 2 1 2 1 2 1 2
 $ Age.mean  : num  17.8 17.7 17.7 17.7 44.3 ...
 $ Age.sd    : num  0.555 0.456 0.603 0.515 5.011 ...
 $ Age.0%    : num  16.6 16.7 16.6 16.6 32.2 ...
 $ Age.25%   : num  17.4 17.4 17.2 17.3 40.8 ...
 $ Age.50%   : num  17.8 17.7 17.8 17.7 44.2 ...
 $ Age.75%   : num  18.1 18 18.1 18 47.5 ...
 $ Age.100%  : num  19.5 19 19.7 20 62.7 ...
 $ Age.N     : num  459 452 882 811 296 342 533 659
 $ Age.NAs   : num  0 0 0 0 0 0 0 0
print.data.frame(sumtab, digits=3)
  Generation Zygosity    Sex Age.mean Age.sd Age.0% Age.25% Age.50% Age.75% 
Age.100% Age.N Age.NAs
1  Offspring       DZ Female     17.8  0.555   16.6    17.4    17.8    18.1     
19.5   459       0
2  Offspring       DZ   Male     17.7  0.456   16.7    17.4    17.7    18.0     
19.0   452       0
3  Offspring       MZ Female     17.7  0.603   16.6    17.2    17.8    18.1     
19.7   882       0
4  Offspring       MZ   Male     17.7  0.515   16.6    17.3    17.7    18.0     
20.0   811       0
5     Parent       DZ Female     44.3  5.011   32.2    40.8    44.2    47.5     
62.7   296       0
6     Parent       DZ   Male     44.1  4.884   32.0    41.1    44.3    47.2     
61.1   342       0
7     Parent       MZ Female     44.2  5.406   29.6    40.5    44.0    47.7     
63.2   533       0
8     Parent       MZ   Male     43.1  5.349   31.3    39.4    42.9    46.2     
65.3   659       0

Or I can produce the output and format it in one step:

print.data.frame(summaryBy(Age ~ Generation + Zygosity + Sex + Cohort + 
ESstatus, data=x, FUN=descriptivefun, na.rm=T, order=T), digits=3)
   Generation Zygosity    Sex Cohort ESstatus Age.mean Age.sd Age.0% Age.25% 
Age.50% Age.75% Age.100% Age.N Age.NAs
1   Offspring       DZ Female     11       ES     17.8  0.354   16.9    17.6    
17.8    18.0     18.9   106       0
2   Offspring       DZ Female     11    notES     18.1  0.556   16.8    17.9    
18.2    18.5     19.5   162       0
3   Offspring       DZ Female     17    notES     17.5  0.457   16.6    17.1    
17.6    17.9     18.3   191       0
4   Offspring       DZ   Male     11       ES     17.8  0.347   17.2    17.5    
17.7    18.0     18.7   134       0
5   Offspring       DZ   Male     11    notES     17.9  0.519   16.8    17.5    
17.9    18.2     19.0   153       0
6   Offspring       DZ   Male     17    notES     17.5  0.392   16.7    17.2    
17.5    17.8     18.5   165       0
7   Offspring       MZ Female     11       ES     17.9  0.451   16.9    17.7    
17.8    18.1     19.1   196       0
8   Offspring       MZ Female     11    notES     18.1  0.610   16.8    17.6    
18.1    18.4     19.7   291       0
9   Offspring       MZ Female     17    notES     17.4  0.496   16.6    17.0    
17.3    17.8     18.4   395       0
10  Offspring       MZ   Male     11       ES     17.8  0.324   16.8    17.6    
17.8    18.0     19.0   195       0
11  Offspring       MZ   Male     11    notES     17.9  0.647   16.6    17.3    
17.9    18.2     20.0   284       0
12  Offspring       MZ   Male     17    notES     17.5  0.396   16.6    17.2    
17.5    17.8     18.4   332       0
13     Parent       DZ Female     11       ES     44.6  5.125   32.2    41.3    
44.7    48.3     58.0   121       0
14     Parent       DZ Female     11    notES     42.5  4.367   34.0    39.3    
42.1    45.5     57.1   107       0
15     Parent       DZ Female     17    notES     46.3  4.918   36.1    42.7    
45.8    48.3     62.7    68       0
16     Parent       DZ   Male     11       ES     44.6  4.561   34.3    41.4    
44.9    47.5     58.8   126       0
17     Parent       DZ   Male     11    notES     42.7  4.960   32.0    39.2    
42.8    45.3     58.2   157       0
18     Parent       DZ   Male     17    notES     46.8  4.023   40.2    44.1    
46.0    48.8     61.1    59       0
19     Parent       MZ Female     11       ES     44.2  5.021   29.6    40.7    
44.1    47.7     56.7   206       0
20     Parent       MZ Female     11    notES     42.3  5.362   30.3    38.6    
41.8    46.0     56.6   172       0
21     Parent       MZ Female     17    notES     46.4  5.177   34.9    42.4    
46.0    49.5     63.2   155       0
22     Parent       MZ   Male     11       ES     43.4  5.351   31.3    40.0    
43.4    46.5     64.7   197       0
23     Parent       MZ   Male     11    notES     41.6  4.656   32.1    38.0    
41.4    44.6     65.3   331       0
24     Parent       MZ   Male     17    notES     46.7  5.242   34.5    43.1    
45.9    49.0     63.8   131       0


Thanks to all.

Mike

--
Michael B. Miller, Ph.D.
Minnesota Center for Twin and Family Research
Department of Psychology
University of Minnesota

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to