Код работает для data.frame:
library(caret)
dataset = data.frame(isTerminated=sample(0:1,100,replace=TRUE),
value=runif(100))
trainIndex <- createDataPartition(dataset$isTerminated, p = .8,
list = FALSE,
times = 1)
testData <- dataset[-trainIndex, ]
trainingData <- dataset[trainIndex, ]
trainIndex
- это матрица, а подмножество с матрицей работает для data.frames и матриц. То, что у вас есть, это тиббл:
library(tibble)
dataset = tibble(dataset)
dataset[trainIndex,]
Error: `i` must have one dimension, not 2.
Я действительно понятия не имею, почему будет работать добавление -trainIndex. Вы можете увидеть, что это также работает, если вы преобразуете его в вектор:
dataset[c(trainIndex),]
# A tibble: 80 x 2
isTerminated value
<int> <dbl>
1 0 0.412
2 1 0.488
3 1 0.395
4 0 0.212
5 0 0.0229
6 0 0.0395
7 0 0.883
8 0 0.601
9 0 0.524
10 0 0.998
# … with 70 more rows
Надеюсь, что кто-то лучше разбирается в tibble, но да, суть в том, чтобы знать, является ли это data.frame или tibble ..