Подмножество данных в зависимости от того, находится ли переменная в списке - PullRequest
1 голос
/ 25 января 2020

У меня есть некоторые данные по статистике игроков НФЛ. Я хочу разделить его на обучающие и тестовые наборы данных, где разделение основано на годе наблюдения.

В частности, мои данные содержат наблюдения статистики игроков за 1999–2019 годы. Я хочу случайным образом выбрать 20% лет (4 года) данных, которые будут служить моим набором тестов, а затем получить оставшиеся 17 лет данные будут моим тренировочным набором.

Теперь у меня есть:

# Set seed
set.seed(43)

# Determine how many years of data should be in test
split <- round(nrow(as.data.frame(table(data$year)))*0.20)

# Pick (split) random years to keep as test
test_years <- sample(data$year, split)

Что я хочу знать, как написать:

train <- data where year is not in test_years

Как бы я поступил это?

1 Ответ

0 голосов
/ 25 января 2020

Мы можем использовать %in% для создания логического вектора, затем отрицать (!), чтобы изменить значение ИСТИНА / ЛОЖЬ на ЛОЖЬ / ИСТИНА и установить подмножество строк «данных»

train <- data[!data$year %in% test_years,]
...