有些软件包(ri
,blockTools
)要求输入矩阵的所有列是数字。我一直在使用以下技巧,但我想知道是否有更直接的方法:首先,运行包含变量的回归,但是我喜欢它们(因子,字符,数字等),然后提取设计矩阵,格式正确(截距除外)。如何lm
制作设计矩阵?我可以制作该矩阵而不必担心运行回归问题吗?
N <- 1000
gender <- sample(c("M", "F"), N, replace=TRUE)
age <- sample(18:65, N, replace = TRUE)
lincome <- rnorm(N, 10, 3)
party <- sample(c("D", "R", "I"), N, prob=c(.45, .35,.2), replace=TRUE)
education <- sample(10:20, N, replace=TRUE)
df <- data.frame(gender, age, lincome, party, education)
fit <- lm(1:N ~ gender + age + lincome + party + education, data=df)
mat <- model.matrix(fit)[,-1]
head(df)
head(mat)
此解决方案可以正常工作,但感觉很笨拙。有没有更好的办法?
参见https://stackoverflow.com/a/5048727/4530610
您的情况是:
mat <- model.matrix( ~ gender + age + lincome + party + education, data=df)[,-1]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句