R:通过随机化组变量来拆分数据集

时间:2016-11-15 06:33:52

标签: r

我有一个数据集,我需要将其拆分为R中的训练和测试集。它有许多观察结果,每个都有各自时间的值(Q32008,Q42008,...,Q42016)。

我想使用随机区域将数据集分成两半,其中特定区域的所有观察值都在一起。例如,一个数据集将包含2009年第二季度,2010年第四季度,2008年第一季度的所有观察结果。我尝试使用split,但我无法unsplit将其随机变为2个唯一数据集。

有什么想法吗?

1 个答案:

答案 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)