2016-11-15 129 views
0

我有一個數據集,我需要在R中拆分爲一個訓練和測試集。它有很多觀察值,並且每個值都有它們各自的時間值(Q32008,Q42008,.. ,Q42016)。R:通過隨機化組變量拆分數據集

我想要將數據集分成兩半,使用隨機化宿舍,其中特定季度的所有觀察值都在一起。例如,一個數據集將具有2009年第二季度,2010年第四季度,2008年第一季度的所有觀察值。我嘗試使用split,但我不能將它unsplit它隨機地分成2個獨特的數據集。

任何想法?

+2

歡迎來到StackOverflow!請閱讀關於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出[可重現的示例]的信息(http://stackoverflow.com/questions/ 5963269)。這會讓其他人更容易幫助你。 – Jaap

回答

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)