我有一个列表signatures
,并且遍历该列表中的所有组合。然后,我计算组合之间的距离:
for (signature_combination in combn(signatures,2, simplify=FALSE))
score(signature_combination[[1]],signature_combination[[2]])
name1 <- signature_combination[[1]]$name
name2 <- signature_combination[[2]]$name
}
name1
和name2
是要比较的签名的名称,即距离矩阵中的行和列名称。
现在,我要将其添加到数据框中,以便获得距离矩阵。我知道添加到此处提到的数据框的3种方式:https : //stat.ethz.ch/pipermail/r-help/2006-June/107734.html。但是,这假定整个行的值都是已知的,但是每次循环访问时,我只有1个值,并且它们不是按顺序排列的。
如何将这些值添加到数据框,以便获得距离矩阵?
为什么首先使用循环?我会使用expand.grid
和by
做这项工作:
comb = expand.grid(names(signature), names(signature)) # I fixed this line!
scores = by(comb,list(comb$Var1,comb$Var2), FUN=function(x) score(signature[[x[[1]]]],signature[[x[[2]]]]))
class(scores)="matrix"
scores
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句