【问题标题】:Subsetting data based on whether a variable is in a list根据变量是否在列表中子集数据
【发布时间】:2020-01-25 17:42:17
【问题描述】:

我有一些关于 NFL 球员统计数据的数据。我想把它分成训练和测试数据集,其中的分割是基于观察年份的。

特别是,我的数据包含从 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

我该怎么做?

【问题讨论】:

    标签: r machine-learning data-manipulation


    【解决方案1】:

    我们可以使用%in% 创建一个逻辑向量,然后取反(!)将TRUE/FALSE 更改为FALSE/TRUE 并对“数据”的行进行子集化

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 2018-04-23
      • 2022-01-07
      相关资源
      最近更新 更多