(一个悖论,一个悖论,一个最巧妙的悖论)
这是受不同R函数启发的多部分系列的第一部分。
任务
给定一个数据集正整数,我需要你计算5号汇总的。但是,我正在处理大型数据集,因此我需要您的代码尽可能小,以便将其存储在计算机上。
这五个数字摘要包括:
- 最低值
- 第一四分位数(Q1)
- 中位数/第二四分位数(Q2)
- 第三四分位数(Q3)
- 最大值
定义四分位数的方法有几种,但是我们将使用R实现的方法:
定义:
- 最小值和最大值:分别为最小值和最大值。
- 中位数:如果中间值有奇数个条目,和两个中间最值的算术平均值,如果有条目的偶数。请注意,这意味着中位数可能是非整数值。我们之前不得不计算中位数。
- 第一和第三四分位数:如果的条目数为奇数,则将数据分为两半,包括每一半的中心元素,并找到每一半的中位数。下半部分的中位数是第一四分位数,上半部分的中位数是第三四分位数。
例子:
。中位数为然后,而下半部分是,得到的第一四分位数,和上半部是,得到的第三四分位。
。中值是,而下半部分是,得到的第一四分位数,和上半部是,得到的第三个四分位数。
附加规则:
- 输入形式为数组或您的语言最接近的等效形式。
- 您可能会假设数组按升序或降序排序(但请指定哪个)。
- 您可以按照任何一致的顺序以及以您喜欢的任何灵活格式返回/打印结果,但是请在您的答案中注明顺序和格式。
fivenum
允许使用等效的内置功能,但也请实施自己的解决方案。- 您可能不会假定五个数字中的每个数字都是整数。
- 鼓励解释。
- 这是代码高尔夫球,因此每种语言的最短答案都可以胜出!
随机生成的测试用例
1 1 1 1 1 2 2 2 2 2 3 3 4 4 4 4 4 5 5 5 -> 1 1.5 2.5 4 5
1 2 2 2 4 4 5 5 6 7 7 8 9 9 9 9 9 10 10 10 -> 1 4 7 9 10
2 2 2 6 8 10 15 16 21 22 23 24 26 33 35 38 38 45 46 47 48 -> 2 10 23 38 48
1 2 9 -> 1 1.5 2 5.5 9
1 2 3 3 3 4 9 -> 1 2.5 3 3.5 9
1 1 2 5 7 7 8 8 15 16 18 24 24 26 26 27 27 28 28 28 29 29 39 39 40 45 46 48 48 48 48 49 50 52 60 63 72 73 79 85 86 87 88 90 91 93 94 95 95 97 100 -> 1 25 45 76 100
2 2 4 4 6 8 10 11 13 14 14 15 17 21 23 24 26 27 27 28 28 30 31 33 33 34 36 36 38 38 39 40 41 42 42 43 45 45 47 47 47 47 47 48 48 48 50 51 53 53 55 56 56 56 57 57 58 62 62 63 64 64 65 65 66 67 67 67 68 69 69 71 71 71 74 79 80 81 81 81 82 82 83 83 86 86 86 87 89 94 94 94 95 95 97 98 99 100 100 100 -> 2 33.5 54 76.5 100
1 3 3 4 -> 1 2 3 3.5 4
1 3 3 3 4 -> 1 3 3 3 4
quantile
返回一个命名向量,而未fivenum
命名。也许这是在哪里fivenum
使用下游的问题?