R反转矩阵中的某些行

时间:2014-07-09 21:16:41

标签: r reverse

我有一个60列矩阵,我想要反转它的一些行。 我发现了以下两种方法:

#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,])

这两种实现是否可以产生相同的结果,或者 他们之间有什么不同吗?

提前致谢

1 个答案:

答案 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

我们可以看到它们产生不同的输出。后者也改变了行的顺序,而不仅仅是反转它们#34;就位#34;