忍者ブログ
日々の研究生活のメモ書きなど
まずデータの紹介

これがhoge1.txt
3333 0.840188
4444 0.394383
1111 0.783099
1111 0.79844
3333 0.911647
3333 0.197551
4444 0.335223
これがhoge2.txt
3333.0 0.840188
4444.2 0.394383
1111.1 0.783099
1111.2 0.79844
3333.0 0.911647
3333.5 0.197551
4444.9 0.335223
hoge1.txtは$1が整数だけど、
hoge2.txtは$1が小数なのでhoge1.txtと同じ方法では重複を判別できない




ググったらまずは「uniqを使うんや」という知見を得たのでやってみた。

まずuniqコマンドの使い方は、
% uniq hoge1.txt
3333 0.840188
4444 0.394383
1111 0.783099
1111 0.79844
3333 0.911647
3333 0.197551
4444 0.335223
で、連続して重複した行を1つにまとめてくれるはずなのだが、
行全体の一致を調べてくれているので、この場合は役に立たない
%uniq -c hoge1.txt
で、一致している行には数字を打ってくれる機能をうまく使えばなんとかできる気がしたけど、
アフォなのでパス

また、連続していない重複は消してくれないので
もし連続していない別の列との重複も消したい場合は事前にsortしておく必要がある


■ 参考 : uniq コマンド







googleで「sort 重複 -uniq」で調べたらやっと出てきた・・・

■ 参考 : ソートしないで重複行を削除する
awk '!a[$0]++' FILE
でいいらしい
説明は参考リンクにあるのでパス(正直わからんちん)


このコマンドをそのままこれそのまま打っても ! がダメっぽい
シェルスクリプトとかにすればいける?
% awk '\!a[$1]++' hoge1.txt
3333 0.840188
4444 0.394383
1111 0.783099
で、! をエスケープすればたぶんOK

一応、これでhoge1.txtの$1から重複してるものを取り除くことはできた
他の行の重複を調べたいときは$1を置き換えればOK


他には、$2が大きいものから残しているようにしたかったら
% sort -k2 -r -g hoge1.txt | awk '\!a[$1]++'
3333 0.911647
1111 0.79844
4444 0.394383
ただし、$1の並び順はめちゃくちゃになるけど

(2017/4/13 追記)
上記のソートで sort -k -r -nと書いていたけど、nオプションは整数を並べ替えるときに使うっぽい
符号を含んだ実数(+1e-5とか-1e-13)とかは-gオプションを付けてソートする






次にhoge2.txtの$1の整数部分を取り出してみる
% awk '{print int($1), $1, $2}' hoge2.txt

または

% awk '{printf "%d %f %f\n", $1, $1, $2}' hoge2.txt
1つめの方法を見つけたときに、ほほ〜と思ったけど、2つめのprintfでごり押した方が早かったわ・・・・

これで、データを整数型にできれば、あとはhoge1.txtと同様にして重複部分を取り除けるわー





















PR
この記事にコメントする
Name
Title
Color
E-Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "生きてます"
print "コロナのせいで15万くらい損失出してますが、生きてます"

# 最終更新 2020/03/15
カウンター
カウンター カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

とある物理の院生日誌~院生は社会へ旅立った~
(研究室の先輩の個人ブログ)

英語例文を見て自然に英語・英会話を学ぶ
(楠本慶ニさんの個人ページ、様々な情報の密度の高さに感動)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)

英語論文執筆用の例文検索サービス
(とんでもないものを見つけてしまった・・・・ arXivに収録されている 811,761報の 英語論文から,例文を検索するための検索エンジン)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]