我无法解决这个问题,我刚刚开始学习R.感谢您的帮助:
(e)在矩阵的每一行中用最小值替换最大值。
答案 0 :(得分:1)
我们可以使用apply
遍历行MARGIN = 1
)和replace
max
与该行min
的值
t(apply(m1, 1, function(x) replace(x, x== max(x), min(x))))
或者使用行/列索引将每行的最大值分配给每行的最小值
library(matrixStats)
m1[cbind(seq_len(nrow(m1)), max.col(m1))] <- rowMins(m1)
或仅使用base R
m1[cbind(seq_len(nrow(m1)), max.col(m1))] <- m1[cbind(seq_len(nrow(m1)), max.col(-m1))]
set.seed(24)
m1 <- matrix(rnorm(5* 10), 5, 10)