3 回答
TA贡献1848条经验 获得超10个赞
您需要重置contrasts因子变量:
model.matrix(~ Fourth + Fifth, data=testFrame,
contrasts.arg=list(Fourth=contrasts(testFrame$Fourth, contrasts=F),
Fifth=contrasts(testFrame$Fifth, contrasts=F)))
或者,键入少一点,但没有适当的名称:
model.matrix(~ Fourth + Fifth, data=testFrame,
contrasts.arg=list(Fourth=diag(nlevels(testFrame$Fourth)),
Fifth=diag(nlevels(testFrame$Fifth))))
TA贡献1887条经验 获得超5个赞
(尝试赎回自己...)为响应Jared关于@Fabians自动化的回答,请注意,您需要提供的只是一个对比矩阵的命名列表。contrasts()取一个向量/因数并从中产生对比度矩阵。对于这个那么我们可以用lapply()运行contrasts()在我们的数据集,例如用于各个因素testFrame提供的示例:
> lapply(testFrame[,4:5], contrasts, contrasts = FALSE)
$Fourth
Alice Bob Charlie David
Alice 1 0 0 0
Bob 0 1 0 0
Charlie 0 0 1 0
David 0 0 0 1
$Fifth
Edward Frank Georgia Hank Isaac
Edward 1 0 0 0 0
Frank 0 1 0 0 0
Georgia 0 0 1 0 0
Hank 0 0 0 1 0
Isaac 0 0 0 0 1
@fabians哪个插槽很好地回答:
model.matrix(~ ., data=testFrame,
contrasts.arg = lapply(testFrame[,4:5], contrasts, contrasts=FALSE))
- 3 回答
- 0 关注
- 925 浏览
添加回答
举报