r-使用多补码器添加连接字母

r-使用多补码器添加连接字母,r,R,我希望有人有2分钟的时间向我解释两件事。我在一个相当大的数据集上运行了这段代码。它使用multcompLetters将连接字母添加到我的方框图中。我有一个4种治疗和2种基因型的实验装置,所以我的aov就像y~Treat+Geno+Geno:Treat。 当我运行带有处理(3df)或交互(7df)的代码时,它似乎一直都很正常。当我在Geno上运行它时(这里是x),我得到一个错误 Error in multcompLetters(t$x[, 1]) : Names required for t$x[

我希望有人有2分钟的时间向我解释两件事。我在一个相当大的数据集上运行了这段代码。它使用multcompLetters将连接字母添加到我的方框图中。我有一个4种治疗和2种基因型的实验装置,所以我的aov就像y~Treat+Geno+Geno:Treat。 当我运行带有处理(3df)或交互(7df)的代码时,它似乎一直都很正常。当我在Geno上运行它时(这里是x),我得到一个错误

Error in multcompLetters(t$x[, 1]) : Names required for t$x[, 1]
我真的不知道为什么

第二项问题-

[4]在英语中是什么意思

groups2 <- multcompLetters(t$x[,4])

groups2multcompLetters
需要的是一个值矩阵,因为它需要不止一个比较。在数据中,您只有一个比较,
yes
vs
no
。如果查看
t$x
变量内部,可以看到以下矩阵:

t$x
#        diff       lwr      upr    p adj
# yes-no  0.3 -1.631884 2.231884 0.747998
通常,这里会有很多行。不幸的是,当您仅从该矩阵中选择一行时,所有行名称都会被删除,
multcompLetters
需要这些名称。例如:

t$x[,4]
# [1] 0.747998 # No names.
要防止出现这种情况,必须向子选择添加一个参数:

t$x[,4,drop=FALSE] 
#           p adj
# yes-no 0.747998 # Names intact

multcompLetters(t$x[,4,drop=FALSE]) # Works.
# $Letters
# yes-no 
#    "a" 
# 
# $LetterMatrix
#           a
# yes-no TRUE

看看
t$x
t$x[,4]
的内容占据第四列,即
t$x
的所有行。更好的方法是说
t$x[,'p adj']
,这样代码中的内容更可读。这是一个非常基本的R,所以在这里提问之前,您可能应该阅读一些教程。另外,我猜您正在使用包
multcompView
,这也应该提到。您还未能为.R包含数据,我想这只是
data.frame(x=x,y=y)
。谢谢。它是有效的,只需要一封信。但不是在每个盒子上面加一个字母。我很想读更多关于R的文章,但是我的论文周五早上有一个截止日期,所以它必须在那之后。这段代码起到了作用。但是,只有当我有两个以上的类别时,我才能使它起作用
t$x[,4,drop=FALSE] 
#           p adj
# yes-no 0.747998 # Names intact

multcompLetters(t$x[,4,drop=FALSE]) # Works.
# $Letters
# yes-no 
#    "a" 
# 
# $LetterMatrix
#           a
# yes-no TRUE