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 關注
- 966 瀏覽
添加回答
舉報