私は、全体の集合をランダムに2つの小さなものに分割しなければならない関数を書いています。セットのサイズは、ユーザーが決定します。 私はそれを2つの等しくないランダムな部分に分割する
number <- function(z,y,p){
indeks <-split(z$y,sample(rep(1:2), c(p, z$y-p)))
train <- z[indeks,]
test <- z [-indeks, ]
result <- list(test, train)
list(result)
}
number(z=lipiec , y=VII, p=200)
をこの方法を行うにしようとしますが、次のエラーが、私は分割しようとしているファイルの構造はintで
Error in sample.int(length(x), size, replace, prob) :
cannot take a sample larger than the population when 'replace = FALSE'
をポップアップ表示されます。 574行あります。したがって、値200はサンプル全体よりも大きくはありません。 2つのランダムに分割されたセットを取得したいと思います。そのうちの1つ(テスト)は200個の要素を持ち、もう1つはベースセットの残りの部分になります。 誰かが私が間違っていることを知っていますか?
***** EDIT **** 修正した後、私は次のようにそれをやった:今、私は、私はそれらの一つ一つを割り当てるために、テストや電車に割り当てる必要があるかわからない
number <- function(z,y,p){
df <- as.data.frame(z$y)
indeks <-split(df, sample(nrow(df))<=p)
train <- indeks$
test <- indeks$
str(test)}
number(z=lipiec , y=VII, p=200)
コレクションの部分の誰でもアイデアはありますか?
理由を変更するのですか? –
ヒントをありがとう。私はまだ多くのヒントを待っています:) –