2015-07-21 81 views
-2

比較兩個類似的表數據點之間的區別我有一個表(DF1),看起來像這樣:如何通過數據點中的R

I   id col.3 col.4 col.5 col.6 col.7 col.8 
M Chr18_1369  G  G  T  G  G  G 
M Chr18_54979  G  N  A  N  G  G 
M Chr18_187626  C  T  N  T  C  C 
M Chr18_196254  C  C  G  C  N  G 
M Chr18_224569  A  A  C  N  C  C 
M Chr18_275670  T  T  C  C  T  T 

有由「N」在DF1代表的一些丟失的數據點。在填補之後,丟失的數據「N」將被一個字母替換。輸出是DF2爲:

I   id col.3 col.4 col.5 col.6 col.7 col.8 
M Chr18_1369  G  G  T  G  G  G 
M Chr18_54979  G  G  A  G  G  G 
M Chr18_187626  C  T  T  T  C  C 
M Chr18_196254  C  C  G  C  C  G 
M Chr18_224569  A  A  C  A  C  C 
M Chr18_275670  T  T  C  C  T  T 

我有另一個數據幀(DF3)

I   id col.3 col.4 col.5 col.6 col.7 col.8 
M Chr18_1369  G  G  T  G  G  G 
M Chr18_54979  G  G  A  A  G  G 
M Chr18_187626  C  T  C  T  C  C 
M Chr18_196254  C  C  G  C  C  G 
M Chr18_224569  A  A  C  C  C  C 
M Chr18_275670  T  T  C  C  T  T 

所述DF3具有相同的結構DF2但一些字符值可以是在缺少數據的相應位置不同的「d」中的「N」。例如,df2 [2,6] ==「G」,但df3 [2,6] ==「A」和df2 [3,5] ==「T」,df3 [3,5] ==「 C「... 我想計算df2和df3之間的差異率。公式是:

U <- length(which(df1 =="N", arr.ind=TRUE)) 
Diff = length(difference(df2,df3))/U 

我不知道如何獲得長度(差異(df2,df3))。我需要一個優雅的腳本來完成這項任務。先謝謝你。

回答

2

sum(df2 == df3)

不起作用?

+0

或者,作爲一個比例,總和(df3 == df2)/ prod(dim(df2))'。它的工作原理是 – ulfelder

+0

。謝謝 – user3354212

+0

這個任務的腳本:U < - which(df1 ==「N」,arr.ind = TRUE);精度< - sum(df2 [U] == df3 [U])/ length(U) – user3354212