以下是我要创建的配方,我想将几个数字特征转换为因子:
house_recipe <- training(house_split) %>%
recipe(log_sale_price ~ MSSubClass + OverallCond + LowQualFinSF) %>%
step_num2factor(
select(MSSubClass,OverallCond,LowQualFinSF),
levels = list(fct_cd_mssbclass, fct_cd_ovcond, fct_cd_lwqfinsf)
)
我收到以下错误:
错误:请为
levels
提供适当长度的字符向量。
级别已通过上面的代码作为列表传递。 levels
的定义如下:
#create levels
fct_cd_mssbclass <- as.character(unique(sort(training(house_split)$MSSubClass)))
fct_cd_ovcond <- as.character(unique(sort(training(house_split)$OverallCond)))
fct_cd_lwqfinsf <- as.character(unique(sort(training(house_split)$LowQualFinSF)))
请告知如何正确使用此步骤功能。我没有在文档中找到任何类似的示例。谢谢。
答案 0 :(得分:1)
您可以使用函数step_mutate_at()
一次分解多个变量。它接受要更改的变量以及要使用的任何函数:
step_mutate_at(MSSubClass,OverallCond,LowQualFinSF, fn = factor)