非常に大きなデータセット(1000行と700000列)の列を並べ替える必要があります。たとえば、col1 col4 col3 col2など、ランダムに配置された列があり、それらをソートする必要があります。
私は成功せずにいくつかのコマンドを試しました。
例:
ID M2 M5 M8 M1 M3 M9 .....M7000000
Animal1 1 0 2 1 0 2 .....1
Animal2 0 1 2 0 1 1 .....0
Animal3 2 1 0 1 2 1 .....0
.
.
.
.
Animaln
この例では、ポイントは列と線が多いことを意味します。同様に、次のように列を並べ替える必要があります。
ID M1 M2 M3 M4 M5 M6 .....M7000000
Animal1 1 0 2 1 0 2 .....1
Animal2 0 1 2 0 1 1 .....0
Animal3 2 1 0 1 2 1 .....0
.
.
.
.
Animaln
ありがとう
ベストアンサー1
GNUと共にdatamash
そしてGNU sort
:
datamash transpose -t ' ' -H <file_in.csv | sort -V | datamash transpose -t ' ' -H >file_out.csv
これは「かなり小さい」データに適しています。あなたのファイルにうまくいくかもしれませんし、うまくいかないかもしれません。
編集する:前置きのない次のソリューションは、あまりにも多くのリソースを占有してはいけません。