我在R中使用table()
命令創建了一個矩陣,其中行和列的值不同。在R中具有相同行和列名稱的單元格的總和
0 1 2
1 1 2 3
2 4 5 6
3 7 7 8
如何將具有相同行列名的元素求和?在這個例子中它等於(2 + 6 =)8。
我在R中使用table()
命令創建了一個矩陣,其中行和列的值不同。在R中具有相同行和列名稱的單元格的總和
0 1 2
1 1 2 3
2 4 5 6
3 7 7 8
如何將具有相同行列名的元素求和?在這個例子中它等於(2 + 6 =)8。
這裏有一個辦法:
# 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
是你的表。
我喜歡使用intersect'和傳球的''要到cbind'做一個字符索引,但不能看到'unname'的需要。 –
@DWin用'x < - table(data.frame(a = rep(1:3,4),b = sample(0:2,12,TRUE)))'而不用'unname'嘗試它。 –