我有許多具有交叉元素列的列表的列表,這裏假設集合1,2,3可以具有1對1,一對多和多對多一對多的關係:在R中計算列表與eVenn的矩陣比較
df1 = data.frame(
X1 = paste('set100',sample(10,8,replace=TRUE),sep=''),
X2 = paste('set200',sample(10,8,replace=TRUE),sep='')
)
df2 = data.frame(
X1 = paste('set100',sample(10,8,replace=TRUE),sep=''),
X3 = paste('set300',sample(10,8,replace=TRUE),sep='')
)
df3 = data.frame(
X2 = paste('set100',sample(10,8,replace=TRUE),sep=''),
X3 = paste('set300',sample(10,8,replace=TRUE),sep='')
)
我想創建兩列清單的合併矩陣,用它們作爲eVenn輸入。在eVenn的4路例如,名單已經在一個對象是這樣的:
> head(res3)
liste_1_.194. liste_2_.149. liste_3_.366. Total_lists ratios
10345445 1 0 0 1 2.159987
10345762 1 1 0 2 2.223848
10345791 1 1 1 3 2.519503
10345824 0 0 0 0 NA
10346191 0 0 0 0 NA
10346843 0 0 0 0 NA
ratios ratios
10345445 NA NA
10345762 2.085687 2.264225
10345791 2.518024 2.668271
10345824 NA 36.246703
10346191 NA 2.527424
10346843 NA 3.852753
我希望能夠調用eVenn命令對合並後的數據是這樣的:
mergedmatrix <- create_the_merged_matrix_somehow(df1,df2,df3)
evenn(path_lists="test",res=mergedmatrix,ud=TRUE)
任何想法?
你能否給我們一個[可重現的例子](http://www.stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –
謝謝,我現在編輯了一下,希望它更好。 – 719016
@avilella,我從來沒有聽說過eVenn,但看起來你想要做的事情可以用不需要eVenn知識的方式來表達。 res3數據如何形成?它是某種頻率表嗎?比例是多少?當你說,「合併矩陣」我想你是指某種類型的連接,或'merge()',但在你的df1-df3數據幀中的值看起來像res3的列標題。你能澄清嗎? –