2017-10-11 21 views
0

ランダムに生成された行列を2つの行列、トレーニング用に1つ、テスト用に1つに分けたいと思います。条件付き行をrの行列から削除するには

a <- s[sample(nrow(s),size=3,replace=FALSE),] 
    b <- s[-a,] 

> s 
     [,1]  [,2] 
[1,] 0.69779187 -0.75869384 
[2,] -0.46857477 -0.33813598 
[3,] 0.53903809 -0.95950598 
[4,] -0.33312675 -0.49951164 
[5,] 0.88500834 0.08256923 
[6,] 0.63664652 0.87420720 
[7,] 0.61614134 0.77893294 
[8,] 0.36956134 0.07586245 
[9,] -0.03678593 -0.23743987 
[10,] -0.27057064 -0.86067063 

> a 
     [,1]  [,2] 
[1,] 0.8850083 0.08256923 
[2,] 0.6366465 0.87420720 
[3,] -0.2705706 -0.86067063 

> b 
[,1] [,2] 

ここでの考え方は、テストマトリクスとしてマトリクスの出力訓練行列、残り行次いで、10 * 2行列を生成し、ランダムマトリックスからトレーニングデータとして3行を選択しています。

誰かからの削除方法に関する提案がありますか?

+0

コードに何か問題がありますか?また、ランダムに生成されたマトリックス – useR

答えて

1

問題は、無作為に選択されたインデックスではなく、sのインデックスをaの行列でインデックスしようとしていることです。

i <- sample(nrow(s),size=3,replace=FALSE) 
a <- s[i,] 
b <- s[-i,] # Note the indexing with i, rather than a 
+0

を提供して、それを変更してください。ありがとう! – user1813564

関連する問題