2017-10-11 2 views
0

기본적으로 무작위로 생성 된 행렬을 2 행렬, 교육용 1 행, 테스트 1 행으로 분리하고 싶습니다.행렬에서 조건부 행을 삭제하는 방법

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

문제는 무작위로 선택한 인덱스가 아닌 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

관련 문제