我正在为我的统计课制作电子表格。它包含一个填充数量的列和一个填充每个数量的频率的列。使用这两列和几个公式,可以找到平均值、众数、中位数、系数变异、四分位数、四分位距、最小值和最大值以及标准差。
问题在于,为了缩短数量列表,需要使用频率列。以数量列表为例:10, 12, 14, 15, 18, 18, 10。
请注意,18 和 10 已重复。我没有在数量列中重复这些数量,而是将该数量的频率从 1 增加到 2。这样做的原因是数量数据列表非常大。这意味着我可能有 5000 个数量,可能会减少到 20 个数量,其中每个数量将具有更大的频率。
问题在于内置中位数和众数函数仅使用 1 列或行,并且不考虑每个数量的频率。
我的问题是:有没有办法使用两列来计算中位数和众数?下面是我解释的一个例子。此外,我的包含数量和频率的列可能不会从头到尾填写,这意味着可能有空条目。
Quantity | Frequency
10 | 4
12 | 6
11 | 3
15 | 1
18 | 10
VS.
Quantity
10
10
10
10
12
12
12
12
12
12
11
11
11
15
18
18
18
18
18
18
18
18
18
18
Run Code Online (Sandbox Code Playgroud) 如何使用 jq 计算数组的中位数 (P50)?jq手册描述了如何计算平均值,但我想得到中位数。
算法:给定一个数字列表,对其进行排序。如果条目数为奇数,则选择中间的条目。如果有偶数个条目,则计算中间两个的平均值。
例子:
echo '[1,5,9,3]' | jq <ANSWER> # should output 4, since it's the mean of 3 and 5
echo '[1,9,2]' | jq <ANSWER> # should output 2, since it's the middle element
echo '[]' | jq <ANSWER> # undefined
Run Code Online (Sandbox Code Playgroud) 我需要计算滚动中位数。并有以下代码
i <- 0
median_roll<-c("")
x<-c(1:10)
n<-2
y<-as.data.frame(x)
while(i < length(x)-n){
median_roll[i] <- median(y[i:i+n,])
i <- i + 1
}
Run Code Online (Sandbox Code Playgroud)
在中值滚动中产生以下结果
[1] "3" "4" "5" "6" "7" "8" "9"
Run Code Online (Sandbox Code Playgroud)
我需要的是
[1] "2" "3" "4" "5" "6" "7" "8" "9"
Run Code Online (Sandbox Code Playgroud) 我需要组织数字并从任意数量的数字中获取中位数和众数,所以我尝试了不同的方法来实现这一点,但我就是无法找到解决方案。
public static void Main()
{
int i, n;
int[] a = new int[100];
Console.Write("\n\nRead n number of values in an array and display it in reverse order:\n");
Console.Write("------------------------------------------------------------------------\n");
Console.Write("Input the number of elements to store in the array :");
n = Convert.ToInt32(Console.ReadLine());
//quantity of numbers to insert
Console.Write("Input {0} number of elements in the array :\n", n);
for (i = 0; i < n; i++)
{
Console.Write("element - {0} : ", i);
a[i] = Convert.ToInt32(Console.ReadLine());
}
//individial numbers to …Run Code Online (Sandbox Code Playgroud) 可能重复:
在Sql Server中计算中值的函数
我有这样一张桌子:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[cars](
[id] [int] IDENTITY(1,1) NOT NULL,
[sp] [int] NOT NULL,
[dst] [int] NOT NULL,
[type] [varchar](10) NULL,
CONSTRAINT [PK_id] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[cars] ON
INSERT [dbo].[cars] ([id], [sp], [dst], [type]) VALUES …Run Code Online (Sandbox Code Playgroud) 作为家庭作业,我必须编写一个脚本,在不使用Python的标准排序函数的情况下查找3个给定数字的中位数.
这是我上课的第一周和我的第一次编程经历,所以我觉得很难比现在更进一步.
这是我到目前为止所拥有的:
def med3(a,b,c):
list = [a, b, c]
newlist = []
if list:
minimum = list[0]
for x in list:
if x < minimum:
minimum = x
newlist.append(minimum)
list.remove(minimum)
elif x >= minimum:
newlist.append(x)
list.remove(x)
return newlist[1]
Run Code Online (Sandbox Code Playgroud)
这似乎可以解决问题,但仅适用于列表的前两个条目.循环不包括第三个条目.
如何让脚本包含所有三个条目?
提前致谢!桑德
哪个是最有效的方法,可以在不使用数组的情况下找到三个整数的中位数,如下例所示:
int[] median = {int a, int b,int c};
Array.Sort(median);
int medianValue = median[1];
Run Code Online (Sandbox Code Playgroud) 我的表中有以下数据:
SELECT category, value FROM test
Run Code Online (Sandbox Code Playgroud)
| category | value | +----------+-------+ | 1 | 1 | | 1 | 3 | | 1 | 4 | | 1 | 8 |
现在我正在使用两个单独的查询.
要获得平均值:
SELECT category, avg(value) as Average
FROM test
GROUP BY category
Run Code Online (Sandbox Code Playgroud)
| category | value | +----------+-------+ | 1 | 4 |
获得中位数:
SELECT DISTINCT category,
PERCENTILE_CONT(0.5)
WITHIN GROUP (ORDER BY value)
OVER (partition BY category) AS Median
FROM test
Run Code Online (Sandbox Code Playgroud)
| category | value | +----------+-------+ | …
当我把1,2,3我的中位数= 44时我的中位数计算有问题我不知道为什么
double wynik = 0;
string x1 = textBox1.Text;
string[] tab = x1.Split(',');
int n = tab.Length;
Array.Sort(tab);
if (n % 2 == 0)
{
double c = x1[(n / 2) -1];
double v = x1[(n / 2)];
wynik = (c + v) / 2;
}
else
wynik = x1[n / 2];
textBox2.Text = wynik.ToString();
Run Code Online (Sandbox Code Playgroud) 我们有一个适合16位的浮点代码,其中1位代表正负号,4位代表指数,11位代表有效位。我已经阅读了有关浮点的内容,并能够找到标准化指数的范围。我认为这将是1-bias和2 ^(exp-1)-1导致[-6,7]的范围。
我也一直在尝试查找正归一化值的范围,代码的中值,正中归一化值的中值和正值的中值。
我知道要找到最大的正归一化值,我需要计算0 0000 11111111111(最小)和0 1110 11111111111(最大)。另外,可以编码多少个不同的值?会是2 ^ 16吗?