适合的Tidymodels错误。错误:`x`和`y`必须具有相同的类型和长度

时间:2020-06-17 15:20:13

标签: r tidymodels r-recipes

我有以下代码:

library(tidymodels)
library(tidyverse)

rps <- tribble( ~estado,   ~comp_move,  ~move,
                "gana",    "piedra",    "papel", 
                "pierde",  "papel",     "piedra",
                "pierde",  "papel",     "piedra",
                "gana",    "tijeras",   "piedra",
                "gana",    "piedra",    "papel",  
                "pierde",  "tijeras",   "papel",  
                "gana",    "papel",     "tijeras",
                "gana",    "piedra",    "papel",  
                "pierde",  "papel",     "piedra", 
                "gana",    "tijeras",   "piedra",
                "empate",  "piedra",    "piedra", 
                "pierde",  "papel",     "piedra", 
                "empate",  "papel",     "papel",  
                "gana",    "tijeras",   "piedra")

rps <- rps %>% mutate_if(is.character,factor)
rps.split  <- initial_split(rps, prop = 0.75)
rps.rec    <- recipe(estado ~ comp_move + move, rps) %>% 
                   step_dummy(all_nominal(),-all_outcomes())
rps.rec.prep <- rps.rec %>% prep()

base.model <- rand_forest() %>%
                set_engine("ranger") %>%             
                set_mode("classification")

last_fit(base.model, rps.rec, rps.split)

我也尝试使用工作流程

wfl <- workflow() %>%
  add_recipe(rps.rec) %>%
  add_model(base.model)
last_fit(wfl, split = rps.split)

使用last_fit()时出现以下错误:

`Error: `x` and `y` must have same types and lengths`

我使用了kknn,decision_tree,random_forest和xgboost,它们都得到相同的错误。即使使用tune_grid()调整参数,我也遇到相同的错误。

问题是,当我使用fit()函数时,一切正常。我知道这是因为我使用的模型错误,但是为什么会出现该错误?我是tidymodel包的新手。

先谢谢了。

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS  10.15.5

0 个答案:

没有答案