如何在R中按行名列名求和矩阵中行列名不匹配的元素?
在R中对矩阵行名与列名不匹配的元素求和
步骤1:构造目标矩阵
先把你给出的矩阵在R中还原:
mat <- matrix( data = c(1, 31, 7, 0, 1, 3590), nrow = 3, dimnames = list( rownames = c("aa", "Aa", "AA"), colnames = c("Aa", "AA") ) )
步骤2:筛选并求和不匹配元素
利用outer()函数生成行名与列名是否相等的逻辑矩阵,取反后作为索引提取对应元素,再求和:
# 生成行名≠列名的逻辑索引 mismatch_pos <- outer(rownames(mat), colnames(mat), function(x, y) x != y) # 对不匹配位置的元素求和 sum(mat[mismatch_pos])
运行这段代码会得到结果9,和你预期的一致。
内容的提问来源于stack exchange,提问作者Khaleesi95
相关产品推荐
相关产品推荐

