2017-10-11 94 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行作为训练数据,然后输出训练矩阵和矩阵的其余行作为测试矩阵。

有没有人对如何从s中删除一些建议?

+0

你的代码有什么问题?请同时提供您的“随机生成的矩阵” – useR

回答

1

问题是,您正尝试使用矩阵a索引s,而不是随机选择的索引。修改你的代码到下面应该做的伎俩:

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

哇,这使得改变。谢谢! – user1813564