使用 model.matrix() 创建虚拟变量

问题描述

以下代码不起作用,有人可以提供帮助吗?

dataframe1<-data.frame(x1 = c(1:5),x2 = 1,x3 = 0)
dataframe1
model.matrix(~x1 - 1,dataframe1)

解决方法

我们也可以转换为 character

dataframe1$x1 <-  as.character(dataframe1$x1)
> model.matrix(~x1 - 1,dataframe1)
  x11 x12 x13 x14 x15
1   1   0   0   0   0
2   0   1   0   0   0
3   0   0   1   0   0
4   0   0   0   1   0
5   0   0   0   0   1
,

x1 作为因子变量。

dataframe1<-data.frame(x1 = c(1:5),x2 = 1,x3 = 0)
dataframe1$x1 <- factor(dataframe1$x1)
model.matrix(~x1 - 1,dataframe1)

#  x11 x12 x13 x14 x15
#1   1   0   0   0   0
#2   0   1   0   0   0
#3   0   0   1   0   0
#4   0   0   0   1   0
#5   0   0   0   0   1
#attr(,"assign")
#[1] 1 1 1 1 1
#attr(,"contrasts")
#attr(,"contrasts")$x1
#[1] "contr.treatment"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...