You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用which()函数替换R语言矩阵中特定条件的元素?

R矩阵中修改指定条件元素的方法

首先定义示例矩阵:

m <- 3*matrix(1:12, 3, 4)

直接用逻辑索引修改(最简便)

不需要借助which(),直接通过逻辑条件定位元素并赋值:

m[m > 25] <- 100

用which()配合整数索引修改

如果一定要用which()获取整数索引,直接赋值即可:

# 获取大于25的元素整数索引
idx <- which(m > 25)
# 修改对应元素为100
m[idx] <- 100

用which()配合矩阵型索引修改

当使用arr.ind = TRUE返回行列矩阵索引时,同样可以直接用于赋值:

# 获取行列形式的索引矩阵
idx_mat <- which(m > 25, arr.ind = TRUE)
# 修改对应元素为100
m[idx_mat] <- 100

如果之前尝试m[which(m > 25)] <- 100失败,大概率是操作时漏写了赋值部分(即只执行了m[which(m > 25)]而没有加<- 100),或者矩阵被意外设置为只读状态(这种情况极少,默认创建的矩阵都是可修改的)。

内容的提问来源于stack exchange,提问作者sSoGah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:20:40