2014-10-08 3 views
2

두 행렬이 있습니다. 더 작은 행렬의 일부를 변경하고 싶습니다.큰 행렬의 일부를 더 작은 행렬로 변경하십시오.

그래서이 처음이며,이 두 번째 행렬이다

큰 매트릭스 :

matrix1=matrix(1:36,nrow=6,ncol=6) 

작은 매트릭스 :

matrix2=matrix(1:10,nrow=2,ncol=5) 

그들에게 결과를 병합하여

이 같은 somethink되어야 이 :

 [,1] [,2][,3] [,4] [,5][,6] 
[1,] 1 7 13 19 25 31 
[2,] 2 8 14 20 26 32 
[3,] 3 9 15 21 27 33 
[4,] 1 3 5 7 9 34 
[5,] 2 4 6 8 10 35 
[6,] 6 12 18 24 30 36 

결과 행렬의 일부분 만이 특정 부분의 더 큰 내부 행렬 중 더 작은 행렬을가집니다.

답변

1

여기 규칙이 명확하지 않습니다. matrix1의 4 번째 및 5 번째 행을 1에서 5까지 matrix2으로 대체하려는 것으로 보입니다. 이 경우 :

matrixNew <- matrix1 #created a copy of `matrix1` 
matrixNew[4:5,-6] <- matrix2 #replace values in `matrixNew on rows 4 and 5 from columns 1 to 5 with matrix2 values 
matrixNew 
#  [,1] [,2] [,3] [,4] [,5] [,6] 
#[1,] 1 7 13 19 25 31 
#[2,] 2 8 14 20 26 32 
#[3,] 3 9 15 21 27 33 
#[4,] 1 3 5 7 9 34 
#[5,] 2 4 6 8 10 35 
#[6,] 6 12 18 24 30 36 

specific part 작은 하나 하나의 큰 그래서 5로 행 4, 5 및 열 1에 내부에 앉아, 나는 rowIndex에 4:5 즉, 4, 5 subset[를 사용 , 그리고 열 인덱스 -6. matrix1에는 6 개의 열이 있으므로 -6은 6 번째 열을 제거하고 하위 집합에 1 : 5 열을 남겨 둡니다. index을 기반으로하는 값은 matrix2 값으로 바뀝니다.

+0

바로 맞습니다! 그러나 왜이 솔루션이 효과가 있는지 설명 할 수 있습니까? 괄호 안에있는이 숫자들은 무엇을 의미합니까? 어떻게 그 해결책을 얻었습니까? –

+0

@ Trik23 몇 가지 설명이 업데이트되었습니다. 또한 R-intro http://cran.r-project.org/doc/manuals/R-intro.html에 대한 링크가 있습니다 – akrun

+0

정말 고맙습니다. 정말 도움이되었습니다. –

관련 문제