【发布时间】:2019-08-30 16:35:28
【问题描述】:
我有一个 223k x 5 列的数据框。我想比较成对的列。
数据框小例子
NAME COLA COLB COLC COLD
1 T C G A
2 G C G A
3 A C G A
4 A G A G
5 A C A G
6 A G G A
7 A G NA NA
8 T C NA NA
9 C T A G
10 G A C T
11 A G T C
12 T C C T
13 C T C T
我想将 COLC 和 COLD 与 COLA 和 COLB 进行比较,并将数据子集到 groupS 中。喜欢
GROUP 1
NAME COLA COLB COLC COLD
1 T C G A
10 G A C T
9 C T A G
11 A G T C
GROUP 2
NAME COLA COLB COLC COLD
2 G C G A
3 A C G A
5 A C A G
GROUP 3
NAME COLA COLB COLC COLD
4 A G A G
6 A G G A
12 T C C T
13 C T C T
GROUP 4
NAME COLA COLB COLC COLD
7 A G NA NA
8 T C NA NA
我尝试使用 if 语句进行处理,但它对我不起作用。我也尝试使用子集函数,但列中的因子不一样。 COLA 和 COLB 是 6 个因素,COLC 和 COLD 是 4 个因素。
for (i in seq (Tab2$NAME){
if (Tab2$COLC == Tab2$COLA || Tab2$COLC == Tab2$COLB){
if (Tab2$COLD == Tab2$COLA || Tab2$COLD == Tab2$COLB){
Tab3 <- Tab2[i,]
Tab4 <- rbind(Tab4, Tab3)
}
}
if (Tab2$COLC != Tab2$COLA && Tab2$COLC != Tab2$COLB){
if (Tab2$COLD != Tab2$COLA && Tab2$COLD != Tab2$COLB){
Tab5 <- Tab2[i,]
Tab6<- rbind(Tab6, Tab5)
}
}
}
【问题讨论】:
-
您为每个组使用的逻辑是什么?我无法从您发布的代码中破译它。