我在R中使用table()
命令创建了一个矩阵,其中行和列没有相同的值。
0 1 2
1 1 2 3
2 4 5 6
3 7 7 8
如何将具有相同行名和列名的元素相加?在这个例子中,它等于(2 + 6 =)8。
答案 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)]])