如果我在数据集中有一个包含多个变量的列,我将如何创建这些虚拟变量 .
示例:假设我有一个名为color的列:红色,绿色,黄色,蓝色,粉红色和灰色作为汽车颜色的选项 .
将这些变量转化为因子的最佳方法是什么 . 没有手工创建一堆虚拟变量?
编辑:所以我做了Greg推荐的,这就是我所拥有的 . 我想知道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 .
1 回答
R将自动为您创建虚拟变量,这是一个基本示例:
调用
lm
中的x=TRUE
告诉它返回实际使用的x矩阵,其中包括虚拟变量 . 如果您不想查看创建的虚拟变量,那么您可以将其保留 . 如果要设置虚拟变量的创建方式,请参阅?contrasts
以获取更多详细信息 .