【问题标题】:Adding a column to the output of `summary(aov)` in R?在R中的“summary(aov)”的输出中添加一列?
【发布时间】:2018-05-16 07:24:15
【问题描述】:

我想知道是否可以在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

【问题讨论】:

    标签: r dataframe anova


    【解决方案1】:

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

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

    但是,这将删除 anova 类,它将是 data.frame

    【讨论】:

    • @rnorouzian 可能需要挖掘here
    • 我认为只是更新而不是cbinding 解决了@Roland 显示的问题
    • 那很好,我希望所有NAs 都可以从您的最终输出中删除?
    • @rnorouzian printCoefmat(fit[[1]], na.print = "")
    【解决方案2】:

    如果要打印重要星,则不能将新列添加为最后一列。最后一列必须是 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      • 2017-04-11
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      相关资源
      最近更新 更多