对于我正在处理的数据集,有很多字符变量是我想要的--对它们进行热编码,以便建立一些预测模型。在我的代码中,我排除了两个变量,因为对它们进行编码是没有意义的,它们是存储的项目标识符和建立年份。下面是我使用的代码:
one_hot_encoding = dummyVars("~.", data = train[,-
c("Item_Identifier", "Outlet_Establishment_Year")], fullRank = T)
ohe_df = data.table(predict(one_hot_encoding, train[,-
c("Item_Identifier", "Outlet_Establishment_Year")]))
train = cbind(train[,"Item_Identifier"], ohe_df)
执行第一行时会出现以下错误:
-c中的错误(“Item_Identifier”,"Outlet_Establishment_Year"):对一元运算符的无效参数。
为什么?还有一个关于dummyVars
函数的问题:默认情况下,它是否排除了输入数据集的数值变量?
发布于 2019-02-04 02:47:08
是的,默认情况下它不包括数值变量。
纠正您的错误,有一些解决办法:
dplyr
-package
select(train, -Item_Identifier, -Outlet_Establishment_Year)
train[, -which(names(train) %in% c("Item_Identifier", "Outlet_Establishment_Year")]
或者只需使用列的编号,如
train[, -c(1,6)]
https://stackoverflow.com/questions/54514208
复制相似问题