我有以下矩阵(示例):
mat <- matrix(c(seq(8,-1),
seq(9,0),
seq(6,-3)),10,3)
现在,如果列中出现负值,我想重新启动该列。 所以我想得到以下矩阵:
solution_mat <- mat
solution_mat[10,1] <-8
solution_mat[8:10,3] <- 6:4
感谢您的帮助!
最佳答案
尝试以下操作:
apply(mat, 2, function(x){
inx <- which(x < 0)
x[inx] <- x[seq_along(inx)]
x
})
# [,1] [,2] [,3]
# [1,] 8 9 6
# [2,] 7 8 5
# [3,] 6 7 4
# [4,] 5 6 3
# [5,] 4 5 2
# [6,] 3 4 1
# [7,] 2 3 0
# [8,] 1 2 6
# [9,] 0 1 5
#[10,] 8 0 4
关于r - 如果列中出现负值,如何复制该列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62626140/