使用combn为所有可能的组合创建百分比差异矩阵

时间:2014-08-04 15:27:55

标签: r matrix

我有144个场景的数据集,并希望使用comb n函数计算所有可能组合的百分比变化。我试图在combn中使用百分比差异函数,但它一直给我大量的NA。有没有办法可以实现这个目标?

创建百分比变化功能:

pcchange=function(x,lag=1)
c(diff(x,lag),rep(NA,lag))/x*100

使用withing combn:

Catch_comp<-combn(catch_table$av_muC, 2, pcchange)

将结果转换为矩阵

inputs <- headers 
out2 <- Catch_comp
class(out2) <- "dist"
attr(out2, "Labels") <- as.character(inputs)
attr(out2, "Size") <- length(inputs)
out2 <- as.matrix(out2)
out2

这就是我的表格看起来像:

> out2
             F_R1S2_11   F_R1S2_12   F_R1S2_13   F_R1S2_21   F_R1S2_22    F_R1S2_23   F_R1S2_31      0.00000000  -0.8328001          NA  -2.1972852          NA  -0.11300746          NA  -1.15112915          NA  -2.7011787          NA  -0.5359923          NA
F_R1S2_12  -0.83280008   0.0000000          NA  -1.4558031          NA  

举个例子: 对于两种情况,我平均有1000次实际捕获模拟 -

F_R1S1_11 = 155420.36

F_R1S1_12 = 154126.0215。

使用pcchange函数我想计算:

((F_R1S1_11-F_R1S1_12)/F_R1S1_11)*100((155420.36-154126.02)/155420.36)*100=0.83% 改变价值观。

我想以144x144矩阵形式为所有可能的组合执行此操作。我希望有所帮助。

谢谢!

0 个答案:

没有答案