R中具有相同行名和列名的单元格的总和

时间:2013-12-12 23:31:21

标签: r

我在R中使用table()命令创建了一个矩阵,其中行和列没有相同的值。

       0   1   2 
  1    1   2   3  
  2    4   5   6  
  3    7   7   8  

如何将具有相同行名和列名的元素相加?在这个例子中,它等于(2 + 6 =)8。

2 个答案:

答案 0 :(得分:3)

这是一种方法:

# find the values present in both row names and column names
is <- do.call(intersect, unname(dimnames(x)))

# calculate the sum
sum(x[cbind(is, is)])

其中x是您的表格。

答案 1 :(得分:1)

另一个,不言自明:

sum(x[colnames(x)[col(x)] == rownames(x)[row(x)]])