2016-11-15 1 views
0

R에서 훈련 및 테스트 세트로 분할해야하는 데이터 세트가 있습니다. 많은 관찰이 있으며 각 시간은 각각의 시간 (Q32008, Q42008, .. ., Q42016).R : 그룹 변수 무작위 화에 의한 데이터 세트 분할

특정 분기에 대한 모든 관측치가 함께있는 무작위 분기를 사용하여 데이터 세트를 절반으로 분할하려고합니다. 예를 들어, 하나의 데이터 세트는 Q2 2009, Q4 2010, 2008 년 1 월의 모든 관측 값을가집니다. split을 사용해 보았지만 unsplit을 2 개의 고유 한 데이터 세트로 무작위로 추출 할 수 없었습니다.

아이디어가 있으십니까?

+2

Welcome to 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)