R 中用于虚拟变量的函数

Functions within R for dummy variables

我想为 R 中的几个不同列创建虚拟变量。我可以使用以下代码为变量 Disability 执行此操作:

Disability <- model.matrix(~ Disability - 1,
                     transform(Dev_Mod, Disability = factor(paste(Disability, sep = "_"))))

因为我想 运行 这段代码多次用于各种变量我更愿意为此创建一个函数,所以我写了下面的函数:

dummy_vars <- function(Input1){
 output <- model.matrix(~ Input1 - 1,
                      transform(Dev_Mod, Input1 = factor(paste(Input1, sep = "_"))))
 return(output)
}

当我然后运行:

Disability <- dummy_vars("Disability")

我收到错误

Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels

我已经对多个变量进行了尝试,但每个变量都出现了相同的错误。

我已经检查过,它们肯定有 2 个或更多级别,所以我不知道如何修复错误。

我发现了一种使用代码同时为多个变量创建虚拟变量的不同方法:-

New_Dataset<-dummy.data.frame(dataset, sep="") 

请注意,数据集 中的每个变量都将更改为虚拟变量,因此最好将您想要作为虚拟变量的变量分开。

Sep = "" 

在变量名和变量值之间可以任意更改。