在for循环内使用公式表示法

时间:2018-07-16 18:47:57

标签: r r-caret one-hot-encoding

我有一个大型数据框,其中有许多因子类功能,我正在尝试对其进行热编码。我正在尝试使用插入符号包中的dummyVars函数来执行此操作。我的问题是,由于我有一个很大的数据框,因此无法一次将所有这些都进行OHE。这是我想出的解决方案:

fac <- data.frame()
for (i in names(train.fact)) {
dmy <- dummyVars( ~ i , data = train.fact)
trsf <- data.frame(predict(dmy, newdata = train.fact))
fac <- cbind(fac, trsf)
}

我希望此for循环将OHE的第一个功能存储在fac中,然后移至下一个功能,将其存储在Oac中,并将该信息绑定到fac,依此类推。

尝试运行此错误时,出现此错误:

Error in `[.data.frame`(data, , vars, drop = FALSE) : undefined columns selected

我相信这是由于每个功能的名称被传递到“ i”的原因。

我还认为这可以通过apply函数来完成,但是无法提出适当的语法。

感谢您的帮助!

0 个答案:

没有答案