当前位置: 首页 > 编程笔记 >

awk 根据表格数据计算列中的值的中位数

孙修贤
2023-03-14
本文向大家介绍awk 根据表格数据计算列中的值的中位数,包括了awk 根据表格数据计算列中的值的中位数的使用技巧和注意事项,需要的朋友参考一下

示例

给定一个;用作列定界符的文件。我们使用以下为GNU awk编写的程序在第二列中计算值的中位数。提供的输入是学生组的成绩列表:

gawk -F';' '{ sample[NR] = $2 }
 END {
   asort(sample);
   if(NR % 2 == 1) {
     print(sample[int(NR/2) + 1])
   } else {
     print(sample[NR/2])
   }
}' <<EOF
Alice;2
Victor;1
Barbara;1
Casper;4
Deborah;0
Ernest;1
Fabiola;4
Giuseppe;4
EOF

该程序的输出为1。

请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。

awk的许多实现都没有对数组进行排序的功能,因此需要在使用上面的代码之前进行定义。

 类似资料:
  • 本文向大家介绍awk 根据表格数据计算列中的平均值,包括了awk 根据表格数据计算列中的平均值的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。我们使用以下程序在第二列中计算值的平均值,提供的输入是学生组的成绩列表: 该程序的输出为2.125。 请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。 请记住,在许多应用程序(监视,统计)中,中位数是更

  • 我正在尝试计算多个列的中值,但是我的数据有点奇怪。它看起来像下面的示例。 在表中到列表示该值的出现次数。我想计算中位数的出现次数。 例如对于ID = 1 是我想要创建的计算。 对于ID=2 我尝试过使用<code>rep()或<code>rep(10,2)),这就是我所期望的。我只是努力创建一个列表或向量,每个列都有重复。

  • 本文向大家介绍awk 交换表格数据中的两列,包括了awk 交换表格数据中的两列的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。排列第一和第二列是通过完成            

  • 本文向大家介绍awk 选择表格数据中的特定列,包括了awk 选择表格数据中的特定列的使用技巧和注意事项,需要的朋友参考一下 示例 我们假设使用的文件;作为列定界符。选择一组特定的列仅需要打印语句。例如,以下程序从其输入中选择列3、4和7: 通常可以更仔细地选择要打印的行。当第一个字段为Alice或时,以下程序从其输入中选择列3、4和7 Bob:            

  • 我有一个大的数据帧,显示如下: 基本上,每当写完“状态”时,我都想根据“类型”计算平均值和中位数。到目前为止,我所做的是首先根据状态“完成”创建一个组,然后计算组的平均值和中位数,如下所示: 如何为“类型”添加一个参数,以便脚本也将根据“类型”估计每个组的中位数。 谢谢。

  • 问题内容: 我正在尝试从DataFrame计算列中每个值的百分位数。 有没有更好的方法来编写以下代码? 我希望看到更好的性能。 问题答案: 似乎您想要: 性能: