【发布时间】:2012-11-07 18:37:38
【问题描述】:
如果我的数据集中有一列包含多个变量,我将如何创建这些虚拟变量。
示例: 假设我有一个名为颜色的列,它有:红色、绿色、黄色、蓝色、粉红色和灰色作为汽车颜色的选项。
将这些变量转化为因子的最佳方法是什么。不用手动创建一堆虚拟变量?
编辑: 所以我按照格雷格的建议做了,这就是我所拥有的。不过,我想知道 NA 输出,但不确定为什么会出现。
> data$Trim<-factor(data$Trim)
> data$Model<-factor(data$Model)
> data$Type<-factor(data$Type)
> data=cbind(Price,Mileage,Buick,Cadillac,Chevrolet,Pontiac,SAAB,Saturn,Model,Trim,Type,Cylinder,Liter,Doors,Cruise,Sound,Leather)
> fit <- lm( Price ~ Mileage+Buick+Cadillac+Chevrolet+Pontiac+SAAB+Saturn+Model+Trim+Type+Cylinder+Liter+Doors+Cruise+Sound+Leather, x=TRUE )
> summary(fit)
然后我收到一条消息“系数:(由于奇异性而未定义 21)”并且对于某些变量,输出为 NA。
【问题讨论】:
-
确实没有理由让您自己制作虚拟变量。你到底想做什么?很可能您只需将变量转换为因子,然后在模型中使用它,而不是直接转换为虚拟变量 - R 将为您进行转换。
-
考虑惩罚回归?
-
我没有,惩罚回归和线性回归有什么区别?
标签: r model linear-regression