1. ホーム
  2. linux

Linuxで数値の統計情報を表示するコマンドラインユーティリティ

2023-10-07 10:02:26

質問

私はしばしば、1行に1つの数値があるファイルを見つけることがあります。私は結局、中央値や標準偏差などのようなものを表示するためにエクセルでそれをインポートしています。

linux で同じことをするコマンドライン ユーティリティはありますか?私は通常、平均、中央値、最小、最大、標準偏差を見つける必要があります。

どのように解決するのですか?

Rを使えば簡単です。こんな感じのファイルに対して

1
2
3
4
5
6
7
8
9
10

これを使う。

R -q -e "x <- read.csv('nums.txt', header = F); summary(x); sd(x[ , 1])"

これを得るために

       V1       
 Min.   : 1.00  
 1st Qu.: 3.25  
 Median : 5.50  
 Mean   : 5.50  
 3rd Qu.: 7.75  
 Max.   :10.00  
[1] 3.02765

  • -q フラグは R のスタートアップライセンスとヘルプの出力を抑制します。
  • -e フラグは、ターミナルから式を渡すことを R に伝えます。
  • xdata.frame - というテーブルです。 これは複数のベクトル/列のデータを収容する構造で、単一のベクトルを読み込むだけなら少し特殊です。これは、使用できる関数に影響を及ぼします。
  • のようないくつかの関数は summary() のように、自然に data.frames . もし x が複数のフィールドを持っていたとします。 summary() はそれぞれについて上記の説明的な統計情報を提供します。
  • しかし sd() は一度に1つのベクトルしか取ることができないので、インデックス x というコマンドを使います ( x[ , 1] の最初のカラムを返します。 x ). あなたが使用できるのは apply(x, MARGIN = 2, FUN = sd) ですべての列の SD を取得できます。