2017-02-15 7 views
0

データフレームを2つの半分に分割して順序を保持する関数にデータフレームを渡したいとします(たとえば、10行dfと1〜5行が返されたdf行6〜10はもう一方のdfに戻ります)。私は(2つのDFSのリストを返すように機能split()を使用しようとしているが、私は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)) 
} 
非常に基本的な方法でも、これを行うことができます
関連する問題