【发布时间】:2019-01-19 08:24:48
【问题描述】:
我是 R 语言的新手,对于我的任务,我正在尝试为不同的变量(总共 3 个)生成多个级别的虚拟变量。但是,我遇到的每种方法都有问题:
方法1:后跟https://stats.idre.ucla.edu/r/modules/coding-for-categorical-variables-in-regression-models/ 代码:
> housing_prices2$Fuel.Type.f <- factor(housing_prices2$Fuel.Type)
> is.factor(housing_prices2$Fuel.Type.f)
[1] TRUE
> housing_prices2$Fuel.Type.f[1:10]
[1] Electric Gas Gas Gas Gas Gas Oil
[8] Oil Electric Gas
Levels: Electric Gas None Oil Solar Unknown/Other Wood
效果很好。但是,当我在下一行遇到问题时:
> summary(lm(write ~ Fuel.Type.f, data = housing_prices2))
Error in model.frame.default(formula = write ~ Fuel.Type.f, data = housing_prices2,: object is not a matrix
我只是不知道这个错误,对我来说没有意义,所以我决定使用另一种方法;
方法2:后跟Convert categorical variables to numeric in R
对于可变Fuel.Type,效果很好:
> Fuel.Type <- as.factor(c("Electric", "Gas", "None", "Oil", "Solar", "Unknown/Other",
+ "Wood"))
> Fuel.Type
[1] Electric Gas None Oil Solar
[6] Unknown/Other Wood
Levels: Electric Gas None Oil Solar Unknown/Other Wood
> unclass(Fuel.Type)
[1] 1 2 3 4 5 6 7
attr(,"levels")
[1] "Electric" "Gas" "None" "Oil"
[5] "Solar" "Unknown/Other" "Wood"
但是当我尝试为其他变量生成假人时,我得到了这个错误:
> housing_prices2$Heat.Type.f[1:10]
NULL
Warning message:
Unknown or uninitialised column: 'Heat.Type.f'.
我也不知道这些错误发生了什么... 任何建议表示赞赏!
顺便说一句,这是我的示例数据表:
>$ Fuel.Type : chr "Electric" "Gas" "Gas" "Gas"
>$ Heat.Type : chr "Electric" "Hot Water" "Hot Water" "Hot Air"
>$ Sewer.Type : chr "Private" "Private" "Public" "Private"
【问题讨论】:
-
你能提供一个可重现的例子吗?例如,请参阅here。
-
@StanZutt 我正在尝试...对语法感到抱歉,R 总是这样做~
-
请发布您的数据。试试
dput()。 -
@StanZutt 我知道了,非常感谢
标签: r statistics regression