引用对象元素

Referencing object elements

我正在尝试访问从 TukeyHSD 函数返回的对象的各个元素。我可以看到如何访问单个元素,但如何访问标签?

$`Auto$CargoSpace`
                  diff       lwr        upr        p adj
wagon-SUV -3747.333 -7664.507  -980.0801 6.855348e-03
trunk-SUV  -4792.333 -5621.311 -2371.3357 2.065806e-05
trunk-wagon  -968.000 -3823.523  2125.54328 7.410039e-01

我希望能够像使用 tibble 或数据框那样访问每个 row/column 组合。这样我就可以稍后在代码中添加解释。假设我想得到这个结果:

CargoSpace p 调整分析

wagon-SUV 6.85 不太可能产生效益

trunk-SUV 2.06值得研究

我们使用 $ 提取输出,然后使用 grep(如果部分匹配)或 %in%(对于固定匹配)对行进行子集化,创建一个 data.frame 以及数据集子集的行名称以及“p adj”列。然后,我们可以根据 'p.adj'

的值创建 'Analysis' 列
out1 <- out$`Auto$CargoSpace`
out2 <- out1[grep("SUV$", row.names(out1),]
out3 <- data.frame(CargoSpace = row.names(out2), p.adj = out2[, "p adj"])
out3$Analysis <- ifelse(out2$p.adj < 0.0001, "Worth investigating", "Unlikely to produce a benefit")

可重现的例子

fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)
out <- TukeyHSD(fm1, "tension", ordered = TRUE)



out$tension
#         diff        lwr      upr       p adj
#M-H  4.722222 -4.6311985 14.07564 0.447421021
#L-H 14.722222  5.3688015 24.07564 0.001121788
#L-M 10.000000  0.6465793 19.35342 0.033626219