gpt4 book ai didi

r - 如何移动R中矩阵的每一行

转载 作者:行者123 更新时间:2023-12-04 11:56:28 25 4
gpt4 key购买 nike

我有一个这种形式的矩阵:

a b c
d e 0
f 0 0

我想把它变成这样的:

a b c
0 d e
0 0 f

移动模式是这样的:

shift by 0 for row 1
shift by 1 for row 2
shift by 2 for row 3
...
shift by n-1 for row n

当然,这可以用 for 循环来完成。我想知道是否有更好的方法吗?

最佳答案

假设您的示例具有代表性,即您始终具有字母和零的三角形结构:

mat <- structure(c("a", "d", "f", "b", "e", "0", "c", "0", "0"), 
.Dim = c(3L, 3L), .Dimnames = list(NULL, NULL))
res <- matrix(0, nrow(mat), ncol(mat))
res[lower.tri(res, diag=TRUE)] <- t(mat)[t(mat)!="0"]
t(res)
# [,1] [,2] [,3]
# [1,] "a" "b" "c"
# [2,] "0" "d" "e"
# [3,] "0" "0" "f"

关于r - 如何移动R中矩阵的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24143992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com