在 R 中的 `summary(aov)` 的输出中添加一列?

Adding a column to the output of `summary(aov)` in R?

我想知道是否可以在 summary(aov) 给出的输出中添加一个带标题的列?

例如,在下面的summary(aov)之后,我们是否可以添加标题为aa的列:

aa = c(4.391098, 12.105541,  0.537330,  6.088639,  1.361073)

# add `aa` above to the right-most column of summary output below:

fit <- summary(aov(yield ~ block + N * P + K, data = npk))

我尝试了以下但没有成功:

fit[[2]] <- aa

我们可以使用cbind更新提取的list元素

fit[[1]] <- cbind(fit[[1]],aa = c(aa, NA)) 

但是,这将删除 anova class 并且它将是 data.frame

如果要打印有意义的星星,则不能将新列添加为最后一列。最后一列必须是 p 值:

aa = c(4.391098, 12.105541,  0.537330,  6.088639,  1.361073)

# add `aa` above to the right-most column of summary output below:

fit <- summary(aov(yield ~ block + N * P + K, data = npk))

fit[[1]]$aa <- c(aa, NA) 
fit[[1]] <- fit[[1]][c(1, 2, 3, 6, 4, 5)]

fit
#            Df Sum Sq Mean Sq     aa F value  Pr(>F)   
#block        5  343.3   68.66  4.391   4.391 0.01295 * 
#N            1  189.3  189.28 12.106  12.106 0.00368 **
#P            1    8.4    8.40  0.537   0.537 0.47564   
#K            1   95.2   95.20  6.089   6.089 0.02711 * 
#N:P          1   21.3   21.28  1.361   1.361 0.26284   
#Residuals   14  218.9   15.64                          
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1