0

以下是我正在创建的配方,我想将一些数字特征转换为因子:

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

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

4

1 回答 1

3

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

于 2020-05-31T16:48:34.133 回答