r - 替换矩阵中的值:在每一行中,最大值与最小值
问题描述
我无法解决这个问题,我刚开始学习R。感谢您的帮助:
(e) 在矩阵的每一行中,用最小值替换最大值。
解决方案
我们可以使用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)
推荐阅读
- javascript - 如何在 JDEV 12c 中使用 Javascript 单击时设置链接样式
- vue.js - 哈希模式下的 VueJS 路由器:如果找不到文件,则路由到错误页面
- php - 尝试使用包含变量的 php 重命名函数
- javascript - 如何在 D3 中附加多个矩形?
- c# - 如何访问 form1.cs 中的任务表单 program.cs
- tinymce - 如何避免内联工具栏自动隐藏在tinymce中?
- java - Appium Android 失败 adb pm pull 命令
- python - matplotlib 在多个文件中错误地绘制
- java - Android studio 文件浏览器
- r - dplyr - 使用 rowwise() 应用自定义函数