首页 > 解决方案 > 替换矩阵中的值:在每一行中,最大值与最小值

问题描述

我无法解决这个问题,我刚开始学习R。感谢您的帮助:

(e) 在矩阵的每一行中,用最小值替换最大值。

标签: rmatrixreplacemaxmin

解决方案


我们可以使用apply循环遍历行(MARGIN = 1)和该行replace的值maxmin

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)

推荐阅读