0

我有一个如下所示的数据框:

    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)

我已经生成了一个设计矩阵,如下所示:

model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.treatment))

对于治疗:时间点效应,我的最后一组设置为参考。例如,我想将其更改为“C”组,并且由于某种原因重新调整不起作用。

我也尝试设置一个基础:

model.matrix(~treatment:timpoint, df, list(treatment = contr.sum, timpoint=contr.treatment), base="C")

如何将时间点的基础更改为“T1”并将交互效果(治疗:时间点)更改为例如组“C”?

4

1 回答 1

1

如果您将处理变量编码为一个因子,您可以重新调整该因子,然后重新运行模型矩阵:

df <- data.frame(
    id = rep(1:125, 3),
    timpoint = paste0("T", rep(1:3, each=125)),
    treatment = gl(5, 25, labels = LETTERS[1:5]))
interaction.col <- paste(df$timpoint, df$treatment, sep = "_")  
df <- cbind(df, interaction.col)
model.matrix(~treatment:timpoint, df)
df$treatment <- relevel(df$treatment, "C")
model.matrix(~treatment:timpoint, df)
于 2020-12-28T02:37:30.437 回答