n <- 5
a <- matrix(c(1:n**2),nrow = n, byrow = T)
輸出是
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
[5,] 21 22 23 24 25
如何將“1”移動到“25”的當前位置,如下所示:
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 5 6
[2,] 7 8 9 10 11
[3,] 12 13 14 15 16
[4,] 17 18 19 20 21
[5,] 22 23 24 25 1
uj5u.com熱心網友回復:
a <- t(a); a[] <- c(a[-1], a[1]); a <- t(a)
a
# [,1] [,2] [,3] [,4] [,5]
# [1,] 2 3 4 5 6
# [2,] 7 8 9 10 11
# [3,] 12 13 14 15 16
# [4,] 17 18 19 20 21
# [5,] 22 23 24 25 1
c(a)將矩陣展開或取消列出為向量。它首先執行此列,因此c(a)結果為[1] 1 6 11 16 21 2 .... 不過,我們希望它是行優先的,所以t(a)轉置它,以便行優先現在是列優先,允許c(a)等作業。c(a[-1], a[1])只是“將除第一個以外的所有內容與第一個連接起來”vector,這是將 a 的第一個元素放在末尾的經典方式。a[] <-是一種對其值進行計算的方法,其中計算不保留物件的“維數”。- 在我們重新排列之后,我們將
t其轉回原始形狀和行/列順序。
uj5u.com熱心網友回復:
這是一個基礎 R 單線
> t(`dim<-`(t(a)[seq_along(a)%%length(a) 1],rev(dim(a))))
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 5 6
[2,] 7 8 9 10 11
[3,] 12 13 14 15 16
[4,] 17 18 19 20 21
[5,] 22 23 24 25 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/420149.html
標籤:
