2014-07-09 1 views
-3

저는 60 행의 행렬을 가지고 있고, 행의 일부를 뒤집고 싶습니다. 나는이 작업을 수행하려면 다음과 같은 두 가지 방법으로 건너 온 :R 행렬의 일부 행을 뒤집습니다.

#rtr is an integer vectors with the indices of the rows I want to reverse 
matrix[rtr,]<-matrix[rtr,(ncol(matrix):1] 

matrix[rtr,]<-rev(mat[rtr,]) 

이 두 구현이 동일한 결과를 생성 할 것으로 예상된다, 또는 그들 사이에 어떤 차이가 있습니까? 사전

+0

시도해 보셨습니까? –

답변

1

에서

덕분에이 꽤 쉬운 일 우리는 서로 다른 출력을 볼 수 있습니다

mm <- matrix(1:(6*7), ncol=6) 
m2 <- m1 <- mm 

rtr<-c(1,6,7) 
m1[rtr,]<-m1[rtr, ncol(m1):1] 

#  [,1] [,2] [,3] [,4] [,5] [,6] 
# [1,] 36 29 22 15 8 1 
# [2,] 2 9 16 23 30 37 
# [3,] 3 10 17 24 31 38 
# [4,] 4 11 18 25 32 39 
# [5,] 5 12 19 26 33 40 
# [6,] 41 34 27 20 13 6 
# [7,] 42 35 28 21 14 7 

m2[rtr,]<-rev(m2[rtr,]) 

#  [,1] [,2] [,3] [,4] [,5] [,6] 
# [1,] 42 35 28 21 14 7 
# [2,] 2 9 16 23 30 37 
# [3,] 3 10 17 24 31 38 
# [4,] 4 11 18 25 32 39 
# [5,] 5 12 19 26 33 40 
# [6,] 41 34 27 20 13 6 
# [7,] 36 29 22 15 8 1 

을 테스트 할 것으로 보인다. 후자는 행의 순서를 바꿔 "자리에서"되돌리기보다는