如何基于行列名称替换R语言矩阵指定交叉元素为0?
替换矩阵中指定行列交叉元素为0的解决方案
很简单,利用R中矩阵的名称索引特性就能轻松搞定你的需求——直接通过行名和列名精准定位目标元素,然后赋值为0即可,完全不用操心行列位置变动的问题。
具体代码实现
# 定位行"ES"、列"BE"的交叉元素,替换为0 mtx["ES", "BE"] <- 0 # 定位行"BE"、列"ES"的交叉元素,替换为0 mtx["BE", "ES"] <- 0
验证修改结果
执行完上面的代码后,你可以用head(mtx)查看修改后的矩阵,这两个指定位置的值已经变成0了:
head(mtx)
BE BG EE ES FI
BE 0.00 0.75 0.17 0.00 0.48
BG 0.75 0.00 0.92 1.03 1.24
EE 0.17 0.92 0.00 0.11 0.31
ES 0.00 1.03 0.11 0.00 0.20
这种用名称索引的方式比用位置索引(比如mtx[4,1])更可靠,哪怕之后矩阵的行/列顺序发生变化,只要名称不变,就能准确找到目标元素。
内容的提问来源于stack exchange,提问作者Anastasia
相关产品推荐
相关产品推荐

