簡體   English   中英

R_如何從成對比較中查找共同元素並進行計算

[英]R_ How to find common elements from pairwise comparison and calculate

您能告訴我如何將相交的數字相加並除以較小的數字嗎? (實際上,我有很多列表)。

foo = list (X=c("a","b","c"),Y=c("a","d","e","f"),Z=c("a","b","z","f","e"),ZZ=c("b","z","e","c"))

從這里,

我想首先計算成對公共元素的總數,然后將值除以較小的元素,

3.4166

3.4166 = 1/3(相交(X,Y)/ min(X,Y))+ 2/3(相交(X,Z)/ min(X,Z))+ 2/3(相交(X,ZZ) / min(X,ZZ)+ 3/4(相交(Y,Z)/ min(Y,Z))+ 1/4(相交(Y,ZZ)/ min(Y,ZZ)+ 3/4(相交(Z,ZZ)/分鍾(Y,ZZ))

combnapply組合可能會達到目的:

sum(apply(combn(seq_along(foo),2),2,function(xx){
  length(intersect(foo[[xx[1]]],foo[[xx[2]]]))/
    min(c(length(foo[[xx[1]]]),length(foo[[xx[2]]])))
}))

至少這可以給您帶來結果。 對我來說,尚不清楚系數(1 / 3、2 / 3,...)的來源...但是您可能可以從這里獲取。 如果您能澄清問題,也可以編輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM