Rでのデータ分割の方法のメモ。
データ準備
1500行の何の意味もないデータ。
ads <- data.frame(id=seq(1:1500))
rsample で分割
library(rsample) ads.sp1 <- rsample::initial_split(ads, prop=3/4) adtrain1 <- rsample::training(ads.sp1) #-- 訓練データ adtest1 <- rsample::testing(ads.sp1) #-- テストデータ
initial_split関数で分割する割合を決める。
training関数とtesting関数で訓練データとテストデータを作る。
dplyr で分割
library(tidyverse) adtrain2 <- dplyr::sample_frac(ads, size=3/4, replace=FALSE) #-- 訓練データ adtest2 <- dplyr::anti_join(ads, adtrain2, by=c("id")) #-- テストデータ。byはユニークキー
sample_frac関数で訓練データ分を作る。
anti_join関数でテストデータ(訓練データ以外のデータセット)を作る。
参考
Simple Training/Test Set Splitting — initial_split • rsample