0
我想创建虚拟变量为R.几个不同的栏目,我可以用代码中的变量残疾做到这一点:功能为虚拟变量
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")
我得到错误
错误
contrasts<-
(*tmp*
,值= contr.funs [1 + ISOF [NN]]):
对比可以只应用于因素有2倍或更多的水平
我已经尝试了这个多变量,我得到了每个相同的错误。
我检查过,他们肯定有2个或更多的水平,所以我不明白如何修复错误。
您必须用公式中的名称替换Input1。如果你提供一个可重复的例子,我们可以告诉你如何。 – Roland
我以为这是我在做什么:残疾<-dummy_vars(“残疾”)“残疾”将是Input1? – MLPNPC
“Disability”只是一个字符串,而不是某个未指定数据框中列的名称,您的函数对该df一无所知。你可以尝试使'Input1 = get(“Disability”)'。 (我不确定这是否有效。) –