Averages/Median: Difference between revisions
→{{header|PowerShell}}
m (added whitespace to the task's preamble, used a larger font to better show the formulae, changed some ONES to elements.) |
|||
Line 2,203:
else /* an even number of elements */
median = (a(n/2) + a(trunc(n/2)+1) )/2;</lang>
=={{header|PowerShell}}==
This function returns an object containing the minimal amount of statistical data, including Median, and could be modified to take input directly from the pipeline.
All statistical properties could easily be added to the output object.
<lang PowerShell>
function
{
[CmdletBinding()]
[OutputType([
Param
(
[Parameter(Mandatory=$true,
[double[]]
$
)
if ($Vector.Count % 2)▼
{
if ($Data.Count -gt ($Data | Select-Object -Unique).Count)
{
$groups = $Data | Group-Object
return ($groups | Sort-Object -Property Count -Descending |
Where-Object {$_.Count -eq $groups[0].Count} |
ForEach-Object {[double]$_.Name})
}
else
{
return $null
}
}
function Get-StandardDeviation ([double[]]$Data)
{
$variance = 0
$average = $Data | Measure-Object -Average | Select-Object -Property Count, Average
foreach ($number in $Data)
{
$variance += [Math]::Pow(($number - $average.Average),2)
}
return ([Math]::Sqrt($variance / ($average.Count-1)))
}
function Get-Median ([double[]]$Data)
{
{
return $Data[[Math]::Floor($Data.Count/2)]
}
else
{
return ($Data[$Data.Count/2], $Data[$Data.Count/2-1] | Measure-Object -Average).Average
}
}
}
{
$
▲ }
▲ Measure-Object -Minimum -Maximum -Sum -Average |
Sum,
▲ Select-Object -Property Count, Minimum, Maximum, Sum, Average |
Minimum,
Add-Member -MemberType NoteProperty -Name Median -Value $median -PassThru▼
Maximum,
@{Name='Range'; Expression={$_.Maximum - $_.Minimum}},
@{Name='Mean' ; Expression={$_.Average}} |
Add-Member -MemberType NoteProperty -Name StandardDeviation -Value (Get-StandardDeviation $Data) -PassThru |
Add-Member -MemberType NoteProperty -Name Mode -Value (Get-Mode $Data) -PassThru
}
}
</lang>
<lang PowerShell>
Count : 6▼
Minimum : 2.6▼
Maximum : 8.8▼
▲Sum : 31.6
Median : 4.85▼
</lang>
{{Out}}
<pre>
Sum : 52
Range : 7
Mean : 4.33333333333333
StandardDeviation : 2.67423169368609
Mode : {1, 7}
</pre>
Median only:
<lang PowerShell>
(
</lang>
{{Out}}
<pre>
4.
</pre>
|