我有一个数据集,我需要将其拆分为R中的训练和测试集。它有许多观察结果,每个都有各自时间的值(Q32008,Q42008,...,Q42016)。
我想使用随机区域将数据集分成两半,其中特定区域的所有观察值都在一起。例如,一个数据集将包含2009年第二季度,2010年第四季度,2008年第一季度的所有观察结果。我尝试使用split
,但我无法unsplit
将其随机变为2个唯一数据集。
有什么想法吗?
答案 0 :(得分:0)
不确定我是否明白你的意思。下面的代码有用吗?
my.df = expand.grid(Quarter=paste0("Q",1:4),Year=2012:2016)
my.df$Period = with(my.df,paste0(Quarter,Year))
my.df$x = rnorm(nrow(my.df))
# Randomly select periods for different data frames
first.periods = sample(my.df$Period,nrow(my.df)/2)
my.df$SplitID = as.numeric(my.df$Period %in% first.periods)+1
# Split data frame
split.df = split(x = my.df,f = my.df$SplitID)