0

私はdata.frameを持っています。その始まりは以下の通りです:

        gene            snp     pval   best_snp    best_pval
1  ENSG00000007341  rs2932538  5.6007 rs17030613   10.0542
2  ENSG00000064419 rs10488631  7.7461  rs4728142   24.6101
3  ENSG00000064419 rs12531711  7.7449  rs4728142   24.6101
4  ENSG00000064419 rs12537284  4.5544  rs4728142   24.6101
5  ENSG00000064666  rs3764650 12.3401  rs3752246    5.4001
6  ENSG00000072682 rs10479002  5.0141 rs12521868   21.1550

示されるように、2~4行目で同じ遺伝子が繰り返される。繰り返される遺伝子の場合、遺伝子が最初に現れる最初の行のbest_snpとのbest_pval値のみを保持したいので、行 2; 行3と4については、上記と同じであるため、 andの値を削除したいと思います。best_snpbest_pval

遺伝子が繰り返されていない場合は、そのままにしておきます。

表は示されているよりもはるかに大きく、遺伝子はランダムな場所で繰り返されていることに注意してください.

4

2 に答える 2

1

df が data.frame の場合:

library(plyr)
ddply(df,.(gene),function(x) {x[-1,c("best_snp","best_pval")] <- NA
return(x)})
于 2013-07-02T10:12:53.020 に答える