R 更改设计矩阵模型的基础/参考。矩阵
我有一个数据框,看起来像这样:R 更改设计矩阵模型的基础/参考。矩阵,r,encoding,model.matrix,R,Encoding,Model.matrix,我有一个数据框,看起来像这样: df <- data.frame(id= rep(seq(1:125),3), timpoint= c(rep("T1", 125), rep("T2", 125), rep("T3", 125)), treatment=c(rep("A",25),rep("B",25),rep("C",25)
df <- data.frame(id= rep(seq(1:125),3),
timpoint= c(rep("T1", 125), rep("T2", 125), rep("T3", 125)),
treatment=c(rep("A",25),rep("B",25),rep("C",25),rep("D",25),rep("E",25)))
interaction.col <- paste(df$timpoint, df$treatment, sep = "_")
df <- cbind(df, interaction.col)
对于治疗:时间点效应,我的最后一组作为参考。例如,我想将其更改为组“C”,但由于某些原因,relevel不起作用
我还尝试建立一个基础:
model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.treatment), base="C")
如何将时间点的基础更改为“T1”,将交互作用(治疗:时间点)的基础更改为例如组“C”?如果将治疗变量编码为因子,则可以重新调整因子,然后重新运行模型矩阵:
df这对我不起作用,我用前面提到的dataframe test.model按如下方式进行了尝试。到底什么不起作用?你收到错误消息了吗?你试过运行我发布的代码吗?它应该是一个独立的、可复制的示例。如果您的R版本默认使用stringsAsFactors=TRUE
,则可以将,stringsAsFactors=FALSE
添加到df
data.frame中(我在R4.0上);不过,这不会有什么不同。我没有收到错误,但下面是它的外观,当您运行我的示例中的代码时,T1:E、T2:E和T3:E的交互被设置为引用。现在我明白了,当我尝试你的例子时,只有T1:C被设置为引用。这对于和编码是不正确的
model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.treatment), base="C")