본문 바로가기

Test Code/C#

[Linq] 기초통계량 구하기

/*

Linq를 사용하여 기초통계량 구하기

*/

using System;
using System.Linq;
using System.Collections.Generic;

class Test_Linq2
{
	static void Main()
	{
		double [] arrdouble = { 123.43, 54.13, 46.9, 423.5, 342.2, 523.7 };
		
		Console.WriteLine("개    수 = {0}",	arrdouble.Count());
		Console.WriteLine("최 소 값 = {0}",	arrdouble.Min());
		Console.WriteLine("최 대 값 = {0}",	arrdouble.Max());
		Console.WriteLine("합    계 = {0}",	arrdouble.Sum());
		Console.WriteLine("제 곱 합 = {0}",	arrdouble.Sum(d => Math.Pow(d, 2)));
		Console.WriteLine("평    균 = {0}",	arrdouble.Average());
		Console.WriteLine("표준편차 = {0}",	Math.Round(StdDev(arrdouble),4));
	}
	
	private static double StdDev(IEnumerable<double> values)
	{
		double result = 0;
		try
		{
			if (values.Count() > 0)
			{
				double mean = values.Average();
				double sum = values.Sum(d => Math.Pow(d - mean, 2));
				result = Math.Sqrt((sum) / (values.Count() - 1));
			}
		}
		catch { }
		return result;
	}
}