我希望在R中为因子实验创建一个不受限制的设计矩阵,以下代码为我提供了所需的矩阵。但是该代码要求对每个因子以及拦截项分别使用model.matrix
命令。我想知道是否可以通过一行代码获得相同的结果。谢谢。
y <- c(55, 56, 57, 53, 54, 55, 51, 52, 53, 61, 62, 63)
N <- gl(n = 2, k = 6, length = 2 * 6
, labels = c("Low", "High")
, ordered = FALSE)
P <- gl(n = 2, k = 3, length = 2 * 6
, labels = c("Low", "High")
, ordered = FALSE)
Data <- data.frame(y, N, P)
X <-
cbind(
model.matrix(object = y ~ 1, data = Data)
, model.matrix(object = y ~ -1 + N, data = Data)
, model.matrix(object = y ~ -1 + P, data = Data)
, model.matrix(object = y ~ -1 + N:P, data = Data)
)
print(x = X)