如何为tidymodel parsnip中的多个数字功能提供给step_num2factor级别?

时间:2020-03-29 21:47:47

标签: r function tidymodels

以下是我要创建的配方,我想将几​​个数字特征转换为因子:

    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)))

请告知如何正确使用此步骤功能。我没有在文档中找到任何类似的示例。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用函数step_mutate_at()一次分解多个变量。它接受要更改的变量以及要使用的任何函数: step_mutate_at(MSSubClass,OverallCond,LowQualFinSF, fn = factor)