gpt4 book ai didi

awk - 狂欢 : Finding average of entries from multiple columns after reading a CSV text file

转载 作者:行者123 更新时间:2023-12-01 23:41:26 26 4
gpt4 key购买 nike

我正在尝试读取一个 CSV 文本文件,并找出以偶数 (2,4,6,...) 结尾的所有用户 ID(第 2 列)每周花费的平均小时数(第 3 列到第 7 列)。

输入示例如下:

Computer ID,User ID,M,T,W,T,F
Computer1,User3,5,7,3,5,2
Computer2,User5,8,8,8,8,8
Computer3,User4,0,8,0,8,4
Computer4,User1,5,4,5,5,8
Computer5,User2,9,8,10,0,0
Computer6,User7,4,7,8,2,5
Computer7,User6,8,8,8,0,0
Computer8,User9,5,2,0,6,8
Computer9,User8,2,5,7,3,6
Computer10,User10,8,9,9,9,10

我写了下面的脚本:

awk -F, '$2~/[24680]$/{for(i=3;i<=7;i++){a+=$i};printf "%s\t%.2g\n",$2,a/5;a=0}' user-list.txt > superuser.txt

这个脚本的输出是:

User4   4
User2 5.4
User6 4.8
User8 4.6
User10 9

但是,我想将脚本更改为只为所有以偶数结尾的用户 ID 打印一个平均值。

所需的输出如下(从技术上讲,这是以偶数结尾的 ID 的所有小时数的平均值):

5.56

如有任何帮助,我们将不胜感激。

TIA

最佳答案

尝试在此处修复 OP 的尝试,并添加逻辑以在最后一次读取文件时获取平均值。写在手机上,所以无法测试它应该工作以防我通过 OP 的描述得到正确的想法。

awk -F, '
$2~/[24680]$/{
count++
for(i=3;i<=7;i++){
sum+=$i
}
tot+=sum/5
sum=0
}
END{
print "Average of averages is: " (count?tot/count:"NaN")
}
' user-list.txt > superuser.txt

关于awk - 狂欢 : Finding average of entries from multiple columns after reading a CSV text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64937094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com