A病对应基因有 a b c d e
B病对应基因有 a c e
C病对应基因有 b d
A与B共用基因有a c e 3个
A与C共用基因有b d 2个
C与B没有共用基因 0个
dplyr包的 full_joint inner_jiont left_jiont 那些看下就会。这问题还价值50元啊?
这样比较容易理解,先分每个疾病一个矩阵,然后根据疾病取交集
> library(dplyr)
> dat
disease gene
1 a 1
2 a 2
3 a 3
4 a 4
5 a 5
6 a 6
7 b 1
8 b 3
9 b 4
10 b 6
11 b 7
12 b 9
13 b 10
14 b 11
15 c 11
16 c 6
17 c 3
18 c 4
19 c 13
> a <- dat[dat$disease=="a",]
> b <- dat[dat$disease=="b",]
> b
disease gene
7 b 1
8 b 3
9 b 4
10 b 6
11 b 7
12 b 9
13 b 10
14 b 11
> ab <- inner_join(a,b,by="gene")
> ab
disease.x gene disease.y
1 a 1 b
2 a 3 b
3 a 4 b
4 a 6 b
如果没人会的话我来试试
参考这个文章
R语言零基础基因/数据差异分析