Fit the linear models relating log-log transformed FMR and Mass using both the Ordinary Least Squares and Reduced Major Axis methods separately for each of the classes (mammals, reptiles and aves).
> nagy.olsM <- lm(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Mammal"))
> summary(nagy.olsM)
Call:
lm(formula = log10(FMR) ~ log10(Mass), data = subset(nagy, nagy$Class == 
    "Mammal"))
Residuals:
     Min       1Q   Median       3Q      Max 
-0.60271 -0.13172 -0.00811  0.14440  0.41794 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.68301    0.05336   12.80   <2e-16 ***
log10(Mass)  0.73412    0.01924   38.15   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
Residual standard error: 0.2119 on 77 degrees of freedom
Multiple R-squared: 0.9498, Adjusted R-squared: 0.9491 
F-statistic:  1456 on 1 and 77 DF,  p-value: < 2.2e-16 
> nagy.olsR <- lm(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Reptiles"))
> summary(nagy.olsR)
Call:
lm(formula = log10(FMR) ~ log10(Mass), data = subset(nagy, nagy$Class == 
    "Reptiles"))
Residuals:
     Min       1Q   Median       3Q      Max 
-0.61438 -0.07813 -0.00782  0.17257  0.39794 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.70658    0.05941  -11.89   <2e-16 ***
log10(Mass)  0.88789    0.02941   30.19   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
Residual standard error: 0.2289 on 53 degrees of freedom
Multiple R-squared: 0.945, Adjusted R-squared: 0.944 
F-statistic: 911.5 on 1 and 53 DF,  p-value: < 2.2e-16 
> nagy.olsA <- lm(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Aves"))
> summary(nagy.olsA)
Call:
lm(formula = log10(FMR) ~ log10(Mass), data = subset(nagy, nagy$Class == 
    "Aves"))
Residuals:
     Min       1Q   Median       3Q      Max 
-0.53281 -0.07884  0.00453  0.09973  0.41202 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.01945    0.03929   25.95   <2e-16 ***
log10(Mass)  0.68079    0.01817   37.46   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
Residual standard error: 0.1653 on 93 degrees of freedom
Multiple R-squared: 0.9378, Adjusted R-squared: 0.9372 
F-statistic:  1403 on 1 and 93 DF,  p-value: < 2.2e-16 
> library(lmodel2)
> nagy.rmaM <- lmodel2(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Mammal"), nperm = 99, range.y = "interval",
> range.x = "interval")
> nagy.rmaM
Model II regression
Call: lmodel2(formula = log10(FMR) ~ log10(Mass), data = subset(nagy,
nagy$Class == "Mammal"), range.y = "interval", range.x = "interval",
nperm = 99)
n = 79   r = 0.9745562   r-square = 0.9497597 
Parametric P-values:   2-tailed = 9.0925e-52    1-tailed = 4.54625e-52 
Angle between the two OLS regression lines = 1.419216 degrees
Permutation tests of OLS, MA, RMA slopes: 1-tailed, tail corresponding to sign
A permutation test of r is equivalent to a permutation test of the OLS slope
P-perm for SMA = NA because the SMA slope cannot be tested
Regression results
  Method Intercept     Slope  Angle (degrees)  P-perm (1-tailed)
1    OLS 0.6830113 0.7341230         36.28325               0.01
2     MA 0.6488611 0.7478872         36.79234               0.01
3    SMA 0.6354571 0.7532896         36.99033                 NA
4    RMA 0.6427932 0.7503328         36.88210               0.01
Confidence intervals
  Method  2.5%-Intercept 97.5%-Intercept  2.5%-Slope 97.5%-Slope
1    OLS       0.5767519       0.7892707   0.6958080   0.7724381
2     MA       0.5501362       0.7439564   0.7095593   0.7876780
3    SMA       0.5379776       0.7281045   0.7159483   0.7925784
4    RMA       0.5434049       0.7378891   0.7120047   0.7903910
Eigenvalues: 2.408867 0.02861954 
H statistic used for computing C.I. of MA: 0.0006266053 
> library(lmodel2)
> nagy.rmaR <- lmodel2(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Reptiles"), nperm = 99, range.y = "interval",
> range.x = "interval")
> nagy.rmaR
Model II regression
Call: lmodel2(formula = log10(FMR) ~ log10(Mass), data = subset(nagy,
nagy$Class == "Reptiles"), range.y = "interval", range.x = "interval",
nperm = 99)
n = 55   r = 0.9721361   r-square = 0.9450487 
Parametric P-values:   2-tailed = 4.560243e-35    1-tailed = 2.280121e-35 
Angle between the two OLS regression lines = 1.612304 degrees
Permutation tests of OLS, MA, RMA slopes: 1-tailed, tail corresponding to sign
A permutation test of r is equivalent to a permutation test of the OLS slope
P-perm for SMA = NA because the SMA slope cannot be tested
Regression results
  Method  Intercept     Slope  Angle (degrees)  P-perm (1-tailed)
1    OLS -0.7065753 0.8878871         41.60146               0.01
2     MA -0.7464273 0.9109729         42.33267               0.01
3    SMA -0.7505069 0.9133362         42.40658                 NA
4    RMA -0.7525920 0.9145440         42.44429               0.01
Confidence intervals
  Method  2.5%-Intercept 97.5%-Intercept  2.5%-Slope 97.5%-Slope
1    OLS      -0.8257399      -0.5874106   0.8288999   0.9468743
2     MA      -0.8542083      -0.6449544   0.8521909   0.9734091
3    SMA      -0.8556188      -0.6519646   0.8562518   0.9742262
4    RMA      -0.8613191      -0.6511803   0.8557975   0.9775283
Eigenvalues: 2.028696 0.02842206 
H statistic used for computing C.I. of MA: 0.00109388 
> library(lmodel2)
> nagy.rmaA <- lmodel2(log10(FMR) ~ log10(Mass), data = subset(nagy,
> nagy$Class == "Aves"), nperm = 99, range.y = "interval",
> range.x = "interval")
> nagy.rmaA
Model II regression
Call: lmodel2(formula = log10(FMR) ~ log10(Mass), data = subset(nagy,
nagy$Class == "Aves"), range.y = "interval", range.x = "interval",
nperm = 99)
n = 95   r = 0.9684215   r-square = 0.9378401 
Parametric P-values:   2-tailed = 6.735679e-58    1-tailed = 3.36784e-58 
Angle between the two OLS regression lines = 1.72973 degrees
Permutation tests of OLS, MA, RMA slopes: 1-tailed, tail corresponding to sign
A permutation test of r is equivalent to a permutation test of the OLS slope
P-perm for SMA = NA because the SMA slope cannot be tested
Regression results
  Method Intercept     Slope  Angle (degrees)  P-perm (1-tailed)
1    OLS 1.0194531 0.6807916         34.24670               0.01
2     MA 0.9911840 0.6952883         34.81044               0.01
3    SMA 0.9761635 0.7029910         35.10687                 NA
4    RMA 0.9718087 0.7052242         35.19242               0.01
Confidence intervals
  Method  2.5%-Intercept 97.5%-Intercept  2.5%-Slope 97.5%-Slope
1    OLS       0.9414302        1.097476   0.6447005   0.7168826
2     MA       0.9180201        1.061862   0.6590437   0.7328076
3    SMA       0.9039794        1.044737   0.6678258   0.7400078
4    RMA       0.8966869        1.042671   0.6688852   0.7437475
Eigenvalues: 1.296792 0.01835144 
H statistic used for computing C.I. of MA: 0.0006174023