Причина, по которой ваше решение не сработало, как минимум, двоякая: (1) неверный индекс поднабора и (2) размер маски не равен количеству записей (т. Е. Строк) в исходном кадре данных (если вы пытаетесьдля подмножества кадра данных, используя маску, меньшую, чем количество записей, R просто переработает маску).
В вызове, который создает маску подмножества с именем SplitIndex
, попробуйте заменить c("Train", "Test")
на c(TRUE, FALSE)
,
SplitIndex <- sample(x = c(TRUE, FALSE), size = nrow(loanfilev2), replace = TRUE, prob = c(0.75,0.25))
У вас будет вектор размером, равным количеству строк в вашем кадре данных, заполненный TRUE
(75% от значений) и FALSE
(25% от значений).Таким образом, вам даже не нужно проверять равенство строк "Train"
или "Test"
;вы просто создадите подмножество данных, где строки соответствуют значению TRUE
в маске.Следовательно, остальная часть кода становится:
loanfilev2[SplitIndex, ] #Train
loanfilev2[!SplitIndex, ] #Test