如何对R中关联表的对角线进行迭代求和

如何对R中关联表的对角线进行迭代求和,r,sum,R,Sum,我有一个疾病突发病例的数据框架。按年份和年龄,如下所示(比本例大得多) 我想做的是迭代求对角线的和,得到这个结果 88 89 90 91 22 1 2 5 14 23 1 7 11 20 24 2 6 19 22 25 3 5 13 39 或者,换句话说;原始数据集: Y1 Y2 Y3 Y4 22 A1 B1 C1 D1 23 A2 B2 C2

我有一个疾病突发病例的数据框架。按年份和年龄,如下所示(比本例大得多)

我想做的是迭代求对角线的和,得到这个结果

     88  89  90  91      
22   1   2   5   14 
23   1   7   11  20   
24   2   6   19  22  
25   3   5   13  39   
或者,换句话说;原始数据集:

     Y1  Y2  Y3  Y4      
22   A1  B1  C1  D1 
23   A2  B2  C2  D2   
24   A3  B3  C3  D3   
25   A4  B4  C4  D4   
     Y1  Y2     Y3        Y4      
22   A1  B1     C1        D1 
23   A2  A1+B2  B1+C2     C1+D2   
24   A3  A2+B3  A1+B2+C3  B1+C2+D3   
25   A4  A3+B4  A2+B3+C4  A1+B2+C3+D4   
最终数据集:

     Y1  Y2  Y3  Y4      
22   A1  B1  C1  D1 
23   A2  B2  C2  D2   
24   A3  B3  C3  D3   
25   A4  B4  C4  D4   
     Y1  Y2     Y3        Y4      
22   A1  B1     C1        D1 
23   A2  A1+B2  B1+C2     C1+D2   
24   A3  A2+B3  A1+B2+C3  B1+C2+D3   
25   A4  A3+B4  A2+B3+C4  A1+B2+C3+D4   
在R中有什么方法可以做到这一点吗

我看过这个问题,但他只想要总和,我想要迭代和


谢谢

使用
ave
注意
行(m)-col(m)
在对角线上是常数:

ave(m, row(m) - col(m), FUN = cumsum)
##    88 89 90 91
## 22  1  2  5 14
## 23  1  7 11 20
## 24  2  6 19 22
## 25  3  5 13 39
假设
m
是如下注释所示的矩阵。如果您有一个数据帧,那么首先将其转换为矩阵

注 可复制形式的输入矩阵
m
为:

Lines <- "     88  89  90  91      
22   1   2   5   14 
23   1   6   9   15   
24   2   5   12  11  
25   3   3   7   20"
m <- as.matrix(read.table(text = Lines, check.names = FALSE))

行非常感谢您提供了这个有用的答案。不幸的是,我的数据框是一个矩形,不是正方形,有30列49行。您的代码适用于中心对角线,但不适用于其他对角线。您知道如何编辑此代码,以便Y2:22=B1和Y3:23=B1+C2等。谢谢。
行(m)-col(m)
在非方矩阵的对角线上也是常量,因此它也适用于这些矩阵。请注意,它适用于矩阵,而不是数据帧。如果有数据帧,则必须执行
m