Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 更改设计矩阵模型的基础/参考。矩阵_R_Encoding_Model.matrix - Fatal编程技术网

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")