【发布时间】:2018-02-24 22:13:29
【问题描述】:
我寻找一个 R 代码来转换矩阵如下(a:原始矩阵,b:期望的输出),例如:
a <- matrix(c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6), nrow = 6, ncol = 4)
b <- matrix(c(1,2,3,4,5,6,2,3,4,5,6,0,3,4,5,6,0,0,4,5,6,0,0,0), nrow = 6, ncol = 4)
a
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 2 2 2 2
[3,] 3 3 3 3
[4,] 4 4 4 4
[5,] 5 5 5 5
[6,] 6 6 6 6
b
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 2 3 4 5
[3,] 3 4 5 6
[4,] 4 5 6 0
[5,] 5 6 0 0
[6,] 6 0 0 0
因此,第一列不移动,第二列上移一步,第三列上移两步,依此类推。移位的列用零填充。
以下链接对我没有帮助(也没有:双 for 循环、具有不同变量的函数、代码 diag 或 kronecker)。
R: Shift values in single column of dataframe UP
r matrix individual shift operations of elements
你有什么想法吗?谢谢。
【问题讨论】:
-
这个操作有通用名称吗?
标签: r