2 つのファイルを 2 つの共通フィールドにマージする

ふようふ

ファイル1

#CHROM  POS     ID      REF_Zv  ALT_lm                             
chr1A   219620  .       T       A
chr1A   219648  .       A       G
chr1A   219867  .       A       G

file2

#CHROM  POS     ID      REF_Zv  ALT_RV                             
chr1A   219457  .       C       T
chr1A   219670  .       A       G
chr1A   219867  .       A       C

ファイル3

#CHROM  POS     ID      REF_Zv  ALT_lm ALT_RV                            
chr1A   219620  .       T       A    NA
chr1A   219648  .       A       G    NA
chr1A   219867  .       A       G    C
chr1A   219457  .       C       NA   T
chr1A   219670  .       A       NA   C 

私の命令は

awk 'FNR==NR{a[$1,$2];next} {if(a[$1,$2]==""){a[$1,$2]=0};print \
$1,$2,$3,$4,$5, a[$4,$5]} ' file1 file2 > file3

しかし、欲しい file3 を取得できません。コマンドを改善するのを手伝ってもらえますか?

ありがとう、ふよう

スティールドライバー

私はあなたがオンザフライシングルパスでこれを行うことができるとは思わない-あなたのいずれかのインデックス付き保存する必要性ALT_lmALT_RV価値を、マージ/でそれらを印刷ENDブロック(元の順序を維持するのは難しいだろう、その場合には-それが重要な場合)、またはファイルの1つに対して2つのパスを作成します: たとえば (醜い - およびGNU Awkが必要です):

$ gawk '
  BEGIN {
    OFS="\t";
    print "#CHROM","POS","ID","REF_Zv","ALT_lm","ALT_RV";
  } 
  BEGINFILE { fn++ }
  FNR == 1 {next}
  fn == 1 {ALT_RV[$1 FS $2] = $5; next} 
  fn == 2 {ALT_lm[$1 FS $2] = $5;}
  {   
    print $1, $2, $3, $4, ($1 FS $2) in ALT_lm ? ALT_lm[$1 FS $2] : "NA", ($1 FS $2) in ALT_RV ? ALT_RV[$1 FS $2] : "NA";
  }' file2 file1 file2
#CHROM  POS ID  REF_Zv  ALT_lm  ALT_RV
chr1A   219620  .   T   A   NA
chr1A   219648  .   A   G   NA
chr1A   219867  .   A   G   C
chr1A   219457  .   C   NA  T
chr1A   219670  .   A   NA  G
chr1A   219867  .   A   G   C

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定の列の共通フィールドを持つ2つのファイルをマージする方法

分類Dev

共通の列に従って2つのファイルをマージする

分類Dev

行が繰り返される共通フィールドに基づいて2つのファイルをマージ/結合する方法

分類Dev

2つのファイルの配列の各オブジェクトに共通する1つのフィールドを比較し、配列も更新する方法

分類Dev

2つのフローファイルを1つにマージする方法

分類Dev

共通の列に基づいて2つのファイルをマージする

分類Dev

共通の列に基づいて 2 つの csv ファイルをマージする

分類Dev

共通データに基づいて 2 つのファイルをマージする

分類Dev

2つの共通フィールドで2つのファイルを結合します

分類Dev

共通の列に従って2つのファイルをマージし、ファイル2に存在しないファイルに0を追加します

分類Dev

共通の列に従って2つのファイルをマージし、ファイル2に存在しないファイルに0を追加します

分類Dev

2つのファイルを比較し、共通フィールドとそれに対応する行番号を1番目のファイルに出力します

分類Dev

2つの<svg>を1つの.SVGファイルにマージする

分類Dev

2つのJSONファイルを1つのJSONFeatureCollectionにマージする方法

分類Dev

共通の最初のフィールドによる2つのソートされたファイルの比較

分類Dev

2つのファイルを1つのファイルにマージまたは結合する方法

分類Dev

awkで2つのファイルを共通のキーでマージする方法は?

分類Dev

2つのファイル間で共通のデータセットをマージする方法

分類Dev

Linux awkが2つのファイルをマージする

分類Dev

2つのファイルをマージする

分類Dev

2つのファイルをマージする

分類Dev

2つのjsonファイルをマージする方法は?

分類Dev

2つのファイルをマージして注文する

分類Dev

awkで2つのファイルをマージする

分類Dev

共通フィールドに基づいて2つの行を1つにマージ

分類Dev

2つのファイルに共通の行を表示するこのperlコードを説明する

分類Dev

共通の列値に基づいて2つのファイルをマージします

分類Dev

2つのファイルの特定のフィールドを比較する-Python

分類Dev

bash / sedで、共通フィールドを持つ2行を1行にマージする方法

Related 関連記事

  1. 1

    特定の列の共通フィールドを持つ2つのファイルをマージする方法

  2. 2

    共通の列に従って2つのファイルをマージする

  3. 3

    行が繰り返される共通フィールドに基づいて2つのファイルをマージ/結合する方法

  4. 4

    2つのファイルの配列の各オブジェクトに共通する1つのフィールドを比較し、配列も更新する方法

  5. 5

    2つのフローファイルを1つにマージする方法

  6. 6

    共通の列に基づいて2つのファイルをマージする

  7. 7

    共通の列に基づいて 2 つの csv ファイルをマージする

  8. 8

    共通データに基づいて 2 つのファイルをマージする

  9. 9

    2つの共通フィールドで2つのファイルを結合します

  10. 10

    共通の列に従って2つのファイルをマージし、ファイル2に存在しないファイルに0を追加します

  11. 11

    共通の列に従って2つのファイルをマージし、ファイル2に存在しないファイルに0を追加します

  12. 12

    2つのファイルを比較し、共通フィールドとそれに対応する行番号を1番目のファイルに出力します

  13. 13

    2つの<svg>を1つの.SVGファイルにマージする

  14. 14

    2つのJSONファイルを1つのJSONFeatureCollectionにマージする方法

  15. 15

    共通の最初のフィールドによる2つのソートされたファイルの比較

  16. 16

    2つのファイルを1つのファイルにマージまたは結合する方法

  17. 17

    awkで2つのファイルを共通のキーでマージする方法は?

  18. 18

    2つのファイル間で共通のデータセットをマージする方法

  19. 19

    Linux awkが2つのファイルをマージする

  20. 20

    2つのファイルをマージする

  21. 21

    2つのファイルをマージする

  22. 22

    2つのjsonファイルをマージする方法は?

  23. 23

    2つのファイルをマージして注文する

  24. 24

    awkで2つのファイルをマージする

  25. 25

    共通フィールドに基づいて2つの行を1つにマージ

  26. 26

    2つのファイルに共通の行を表示するこのperlコードを説明する

  27. 27

    共通の列値に基づいて2つのファイルをマージします

  28. 28

    2つのファイルの特定のフィールドを比較する-Python

  29. 29

    bash / sedで、共通フィールドを持つ2行を1行にマージする方法

ホットタグ

アーカイブ