为它的主体创建一个具有此代码的R代码的函数,并返回一个修改过的all.crossings:
for each rowname in data-matrix{ add this row from datamatrix to matching row in all.crossings }
实际代码:
addmat <- function(X, res){ for( r in rownames(X)) { res[r, ] <- X[r,]+res[r,] }; res}
这应该相当容易,因为拉一行可以使用字符索引,然后分配也可以。
然后对其中的项目执行for循环 data_out.2nd.ord 运行此功能三次。
data_out.2nd.ord
res <- all.crossings; for( s in seq_along(dat) ){ res <- addmat( dat[[s]], res=res) }
提供的数据结果:
> res k ij Aa A Baa Ba B Caa A-A 0 0 2 1 1 0 A-Aa 0 1 0 0 0 0 A-B 0 0 0 0 0 0 A-Ba 0 0 1 4 2 0 A-Baa 0 1 3 2 3 0 A-Caa 0 0 0 0 0 0 Aa-A 1 5 0 0 0 0 Aa-Aa 0 0 0 0 0 0 Aa-B 0 0 0 0 0 0 Aa-Ba 0 0 0 1 0 0 Aa-Baa 0 2 0 1 1 0 Aa-Caa 0 0 0 0 0 0 B-A 0 1 0 1 0 0 B-Aa 0 0 0 0 0 0 B-B 0 0 5 9 41 14 B-Ba 0 1 4 10 10 7 B-Baa 0 0 6 0 2 1 B-Caa 0 1 3 6 16 18 Ba-A 0 0 2 2 1 0 Ba-Aa 0 0 1 0 0 0 Ba-B 0 1 2 13 7 6 Ba-Ba 1 2 7 7 9 0 Ba-Baa 0 1 3 4 5 4 Ba-Caa 0 0 1 3 3 7 Baa-A 0 1 5 2 0 0 Baa-Aa 0 2 0 0 1 0 Baa-B 0 0 1 7 2 3 Baa-Ba 0 1 7 6 4 0 Baa-Baa 1 2 5 7 2 1 Baa-Caa 0 0 1 3 2 0 Caa-A 0 0 0 0 0 0 Caa-Aa 0 0 0 0 0 0 Caa-B 0 0 0 2 21 18 Caa-Ba 0 0 1 3 2 6 Caa-Baa 1 1 1 2 0 0 Caa-Caa 0 0 0 4 19 38 attr(,"class") [1] "matrix" attr(,"call") xtabs(formula = Count ~ ij + k, data = all.crossings)