忍者ブログ
日々の研究生活のメモ書きなど
■ 参考 : 統計屋のためのAWK入門

ここの「AWKでなんか色々統計処理をやってみた」というsectionにワンライナーでコマンドがまとめられてる

以前から使ってる別のワンライナーコマンドをまとめたページも貼ろうと思ったけど、
記事が別の場所に移動して怪しかったのでやめた

分散と標準偏差が便利
ダブルコーテーションじゃなくてバッククオートじゃないといけなかった
# 平均
awk '{sum+=$1}END{print sum/NR}' hoge.txt

# 分散
awk '{d[NR]=$1;avg+=$1}END{a=avg/NR;for(i in d)s+=(d[i]-a)^2;print s/(NR-1)}' hoge.txt

# 標準偏差
awk '{d[NR]=$1;avg+=$1}END{a=avg/NR;for(i in d)s+=(d[i]-a)^2;print sqrt(s/(NR-1))}' hoge.txt

あとで気づいたけど、これ"あんちべ"さんだ・・・






別の記事に艦これの加賀さんが出て来ていたのでメモメモ

■ 面白い記事 : 自然言語処理の最新手法"word2vec"で艦これ加賀さんから乳を引いてみる





(2017/09/04 追記)

# シャッフルを用いた重複なしランダムサンプリング
awk 'BEGIN{srand()} {line[NR] = $0} END{for(;i<100000;i++){r=1+int(rand()*NR);s=1+int(rand()*NR);tmp=line[r];line[r]=line[s];line[s]=tmp};for(t in line)print line[t]}' hoge.txt | awk "NR <= 100"

これで100000回並べ替えを行って、そこから先頭の100個のデータを抽出できる
元のソースコードは上記と同じリンク

srandは現在の時刻から初期シードを生成して、乱数生成を行うので
1秒以内に同じコードを実行するとまったく同じ結果になってしまう

この処理を何度も行うときはsleep 2とかを間に挟んだ方が良い







PR
この記事にコメントする
Name
Title
Color
E-Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞
自己紹介:
#include <stdio.h>
#include "MyProfile.h"

#define TWITTER coffee_pote

#define WISH_LIST
amazonのほしい物リスト
#ifdef RICH_FLAG
// ↑いつも支援いただきありがとうございます m(_ _)m
#endif


int main(void){

printf("\n");
printf("D論・・・? あぁそんな子もいましたね(執筆中)\n");
printf("\n");
printf("猿でもわかるgnuplot を執筆中(こっちの執筆は半年以上何も進んでいない・・・・)\n");
/* 最終更新 2017/07/19 */
return 0;

}
カウンター
ブログ内検索
ツイートするボタン
Flickr

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