次の形式のテキストファイルに、並べ替えられていないデータがたくさんあります。
1.0 10
1.8 10
1.1 10
1.9 20
2.8 20
2.1 20
2.9 20
...
2 列目の各値について、1 列目の値の間隔を取得したいと考えています。上記の例の場合、結果は次のようになります。
1.0 1.8 10
1.9 2.9 20
c/c++、awk、またはその他の Linux シェル ツールでこれを行うにはどうすればよいですか?
別の代替手段を追加するには、R でもこれを行うことができます。
d.in <- read.table(file = commandArgs(trailingOnly = T)[1]);
write.table(
aggregate(V1 ~ V2, d.in, function (x) c(min(x),max(x)))[,c(2,1)]
, row.names = F
, col.names = F
, sep = "\t");
次に、このスクリプトをRscript
次のように呼び出します。
$ Rscript script.R data.txt
1 1.8 10
1.9 2.9 20