Я слежу за книгой по построению деревьев решений и подумал, что смогу сделать кусок кода немного красивее. Это рассматриваемый код:
library(tree)
library(ISLR)
library(dplyr)
attach(Carseats)
High=ifelse(Sales <=8,"No","Yes ")
Carseats =data.frame(Carseats ,High)
tree.carseats <- tree(High~ . -Sales, Carseats)
Что делает код, так это добавляет столбец во фрейм данных Carseats перед созданием древовидной структуры.
Код, который я считал более красивым читать это:
library(tree)
library(ISLR)
library(dplyr)
Carseats <- Carseats %>% mutate(High = ifelse(Sales <= 8, "No", "Yes"))
tree.carseats <- tree(High~ . -Sales, Carseats)
Однако попытка запустить последнюю строку с измененным кодом выдает предупреждение:
Warning message:
In tree(High ~ . - Sales, Carseats) : NAs introduced by coercion
Когда я пытаюсь сделать сводку tree.carseats
, это выдает ошибку с измененным кодом:
Error in y - frame$yval[object$where] :
non-numeric argument to binary operator
Что не так с моим мыслительным процессом здесь?