2017-02-15 77 views
0

我想將數據幀傳遞給一個將其拆分成兩半但保留順序的函數(例如,10行df和1-5行都在一個返回的df中第6-10行在另一個返回的df)。我試圖使用功能split()到(返回2個DFS的名單,但是當我用它sample()混合了訂單。如何將有序數據幀拆分爲前半部分和後半部分

split_df<- function(df) 
{ 
    test = split(df, sample(1:2,length(df)/2)) 
    return(test) 
} 

我在爲sample()與輸入的麻煩。我認識的人問關於拆分數據幀在這裏,但我不能讓這出於某種原因,我可以用別的什麼,除了sample()

回答

1

sample函數的名稱可能會扔你。它適用於隨機取而代之嘗試rep()

split_df <- function(df) { 
    test <- split(df, rep(1:2,each=length(df)/2)) 
    return(test) 
} 
0

你可以這樣做也是在一個非常基本的方式

split_df <- function(df) { 
     df1 <- df[1:ceiling(length(df[ , 1])), ] 
     df2 <- df[ceiling(length(df[ , 1])):length(df[ , 1]), ] 
     return(list(df1, df2)) 
}