Попытка построить дерево дает: Ошибка в `[.default` (xj, i): недопустимый тип индекса 'list' - PullRequest
0 голосов
/ 19 марта 2020

Выполнение приведенного ниже кода:

library(tree)
library(ISLR)
library(dplyr)

Carseats <- Carseats %>% mutate(High = factor(ifelse(Sales <= 8, "No", "Yes")))

set.seed(2)
train_sample <- sample(nrow(Carseats), 200)
carseats_train <- Carseats[train_sample,]
carseats_test <- Carseats[-train_sample,]

tree.carseats <- tree(High~ . -Sales, Carseats, subset = carseats_train)

Это выведет сообщение об ошибке:

Error in `[.default`(xj, i) : invalid subscript type 'list'

В чем причина этого и как его можно обмануть?

1 Ответ

0 голосов
/ 19 марта 2020

Я понял свою ошибку. Мой ввод в дерево был неверным. А именно subset param. Это должно быть выражение, определяющее подмножество, которое будет использоваться.

Код можно исправить с помощью train_sample в качестве ввода.

library(tree)
library(ISLR)
library(dplyr)

Carseats <- Carseats %>% mutate(High = factor(ifelse(Sales <= 8, "No", "Yes")))

set.seed(2)
train_sample <- sample(nrow(Carseats), 200)
carseats_test <- Carseats[-train_sample,]

tree.carseats <- tree(High~ . -Sales, Carseats, subset = train_sample)
...