我试图比较材料中不同材料重量的拉伸强度。
拉伸数据如下:
tensile <- read.table(text=" Weight Strength Replicate
1 15 7 1
2 15 7 2
3 15 15 3
4 15 11 4
5 15 9 5
6 20 12 1
7 20 17 2
8 20 12 3
9 20 18 4
10 20 18 5
11 25 14 1
12 25 18 2
13 25 18 3
14 25 19 4
15 25 19 5
16 30 19 1
17 30 25 2
18 30 22 3
19 30 19 4
20 30 23 5
21 35 7 1
22 35 10 2
23 35 11 3
24 35 15 4
25 35 11 5", header=TRUE)
变量&#34;重量&#34;应被视为本分析目的的一个因素(解释/自变量):
tensile$Weight <- factor(tensile$Weight)
我首先在我的数据中安装了单向ANOVA模型:
tensile.aov <- aov(Strength ~ Weight, data = tensile)
根据ANOVA,相对于响应(强度)的不同权重似乎存在差异。所以我决定使用LSD(最低有效差异)进行成对比较:
LSD.aov(tensile.aov)
但是,这个LSD功能是通过一个单独的文件提供的,所以我很遗憾无法在这里共享代码。
我为我的数据计算了LSD并得到了下表:
注意,根据原始p值,35和15以及25和20权重之间的成对比较是唯一在α= 0.05显着性水平上彼此没有显着差异的权重;其他成对比较有显着差异。我想创建一个字母摘要来说明这一点,如果组彼此之间没有显着差异,那么组只有相同的字母,而没有相同字母的组彼此之间存在显着差异:
如何在R中创建这样的表?
如果有人愿意花时间协助我,我将不胜感激。
编辑:我也完全愿意接受&#34;手册&#34;解。我的意思是使用向量等手动创建表。我是r的新手,所以即使是最基本的方面,我也不会很好地掌握。答案 0 :(得分:1)
multcompView
包可以将p值转换为字母,但是在这种情况下,emmeans
包可以同时进行比较和字母。
library(emmeans)
em <- emmeans(tensile.aov, ~Weight)
summary(pairs(em, adjust="none"), infer=TRUE)
#> contrast estimate SE df lower.CL upper.CL t.ratio p.value
#> 15 - 20 -5.6 1.79555 20 -9.3454518 -1.8545482 -3.119 0.0054
#> 15 - 25 -7.8 1.79555 20 -11.5454518 -4.0545482 -4.344 0.0003
#> 15 - 30 -11.8 1.79555 20 -15.5454518 -8.0545482 -6.572 <.0001
#> 15 - 35 -1.0 1.79555 20 -4.7454518 2.7454518 -0.557 0.5838
#> 20 - 25 -2.2 1.79555 20 -5.9454518 1.5454518 -1.225 0.2347
#> 20 - 30 -6.2 1.79555 20 -9.9454518 -2.4545482 -3.453 0.0025
#> 20 - 35 4.6 1.79555 20 0.8545482 8.3454518 2.562 0.0186
#> 25 - 30 -4.0 1.79555 20 -7.7454518 -0.2545482 -2.228 0.0375
#> 25 - 35 6.8 1.79555 20 3.0545482 10.5454518 3.787 0.0012
#> 30 - 35 10.8 1.79555 20 7.0545482 14.5454518 6.015 <.0001
#>
#> Confidence level used: 0.95
cld(em, adjust="none")
#> Weight emmean SE df lower.CL upper.CL .group
#> 15 9.8 1.269646 20 7.151566 12.44843 1
#> 35 10.8 1.269646 20 8.151566 13.44843 1
#> 20 15.4 1.269646 20 12.751566 18.04843 2
#> 25 17.6 1.269646 20 14.951566 20.24843 2
#> 30 21.6 1.269646 20 18.951566 24.24843 3
#>
#> Confidence level used: 0.95
#> significance level used: alpha = 0.05
答案 1 :(得分:0)
我设法如下:
Weight = c(15, 20, 25, 30, 35)
mean = c(9.8, 15.4, 17.6, 21.6, 10.8)
letters = c("a", "b", "b", "", "a")
LSDletterSummary <- data.frame(Weight, mean, letters)
LSDletterSummary
如果有人有更好的方法,请随时分享。