一尘不染

命令行实用程序,用于在Linux中打印数字统计信息

linux

我经常发现自己的文件每行有一个数字。我最终将其导入excel以查看诸如中位数,标准差等内容。

Linux中是否有命令行实用程序可以执行相同的操作?我通常需要找到平均值,中位数,最小值,最大值和标准差。


阅读 245

收藏
2020-06-02

共1个答案

一尘不染

使用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标志squelches的r启动许可和帮助输出
  • -e标志告诉R您将要从终端传递一个表达式
  • x``data.frame基本上是一张桌子。它是一个结构,可容纳多个向量/数据列,如果您仅读取单个向量,则该结构会有些特殊。这会影响您可以使用哪些功能。
  • 有些功能,例如summary(),自然可以容纳data.frames。如果x有多个字段,summary()则将为每个字段提供上述描述性统计信息。
  • 但是sd()一次只能使用一个向量,这就是为什么我x为该命令建立索引(x[ , 1]返回的第一列x)的原因。您可以apply(x, MARGIN = 2, FUN = sd)用来获取所有列的SD。
2020-06-02