非常に大きな tsv ファイルがあり、いくつかの列を削除する必要があります。私は CSV モジュールを見つけました。また、似たような質問に対する以下のような回答もあります (以下のスクリプトを参照)。それでも、広範囲の列を削除する必要があり、削除する各列のすべてのインデックスを入力したくありません。つまり、689513 列のファイルから、列 628715 から 650181 を削除し、列 653321 から 689513 も削除したいと考えています。 653321 から 689613、または同等の 653321 からファイルの末尾まで)。基本的な質問で申し訳ありません。私はスクリプトを作成するのが初めてで、道に迷っています...そしてCSVモジュールのページでは、列範囲の削除について詳しく説明していません。R でこれを実行しようとしましたが、最初のセル エントリが空白です (コードの下のサンプル リストを参照)。私のファイルは tsv タブ区切りファイルですが、区切り文字を \t に設定するコマンドを使用して修正できるものを集めています。どんな助けでも大歓迎です!!! (注: 残念ながら、列の名前にコロンを付ける必要があります。つまり、2L:1274 は完全に 1 つの列の名前です)。
import csv
with open("source","rb") as source:
rdr= csv.reader( source )
with open("result","wb") as result:
wtr= csv.writer( result )
for r in rdr:
wtr.writerow( (r[0], r[1], r[3], r[4]) )
2L:1274 2L:2425 2L:2853 3L:4 3L:5 3L:7
indivBCsusceptiblePL7A10_TATAGT NA NA NA NA NA NA
indivBCsusceptiblePL7A11_CCTGAA NA 5 NA NA NA NA
indivBCsusceptiblePL7A12_CAATAT NA NA 6 7 8 9
indivBCsusceptiblePL7A1_CCGAAT NA NA NA NA NA NA