gpt4 book ai didi

ruby - 从 Ruby 数组计算四分位数平均值?

转载 作者:数据小太阳 更新时间:2023-10-29 07:27:27 25 4
gpt4 key购买 nike

我有这个数组:

[288.563044, 329.835918, 578.622569, 712.359026, 866.614253, 890.066321, 1049.78037, 1070.29897, 2185.443662, 2492.245562, 4398.300227, 13953.264379]

如何计算 interquartile mean从这个?

那个维基百科链接解释得最好,但我基本上需要删除底部和顶部的 25%,只留下中间的 50%,我需要对其中的数字进行平均。

但这是假设数组项的数量可以被 4 整除。Here's how to calculate it当它不能被四整除时。

那么我该怎么做呢?

最佳答案

这是一个数组的部分解决方案,该数组的元素数量是 4 的倍数。我会在弄清楚后放上完整的。

arr = [288.563044, 329.835918, 578.622569, 712.359026, 866.614253, 890.066321, 1049.78037,    1070.29897, 2185.443662, 2492.245562, 4398.300227, 13953.264379].sort!
length = arr.size
mean = arr.sort[(length/4)..-(length/4+1)].inject(:+)/(length/2)

我认为这是一个更好的解决方案。

def interquartile_mean(array)
arr = array.sort
length = arr.size
quart = (length/4.0).floor
fraction = 1-((length/4.0)-quart)
new_arr = arr[quart..-(quart + 1)]
(fraction*(new_arr[0]+new_arr[-1]) + new_arr[1..-2].inject(:+))/(length/2.0)
end

关于ruby - 从 Ruby 数组计算四分位数平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8856716/

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