gpt4 book ai didi

linux - 使用 R/awk 打印文件中列的标准差

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:25 25 4
gpt4 key购买 nike

我有一个包含一列数字的文件

4.685
5.440
5.751
4.685
3.979

在我的 shell 脚本中,我想询问其中许多文件并获取标准差和平均值

我可以使用 awk 轻松实现平均值 awk '{sum+=$1} END { print sum/NR}' file

使用 awk 计算标准差时 awk '{x[NR]=$0; s+=$0} END{a=s/NR; for (i in x){ss += (x[i]-a)^2} sd = sqrt(ss/NR); print sd}' file

我得到0.625 。这个数字与 excel 不同,它给我 0.699 。我发现我可以从命令行执行 R 来打印出 sd: R -q -e "x <- read.csv('file', header = F); sd(x[ , 1])"

但是,这会产生稍微困惑的输出

[1] 4.908
\>
\>

我可以调整 R 命令以仅打印数字而不诉诸 head 和 cut/awk 吗?

另外,我提取标准差的 awk 代码有什么问题吗?

最佳答案

我不太清楚你的 awk 有什么问题,但是对于 R 命令,你可能会发现 write 有帮助:

R -q -e "x<- read.csv('file.csv',header=FALSE)[,1] ; write(sd(x),file='result.txt')"

关于linux - 使用 R/awk 打印文件中列的标准差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528491/

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