Willcode4cash icon

Standard Deviations with LINQ

Willcode4cash | PRO | 10/31/16 07:54:39 PM UTC | 0 ⭐ | 254 👁️ | Never ⏰ | []
C# |

580 B

|

None

|

0 👍

/

0 👎

public static double StdDevP(this IEnumerable<int> source)
{
    return StdDevLogic(source, 0);
}
 
public static double StdDev(this IEnumerable<int> source)
{
    return StdDevLogic(source, 1);
}
 
private static double StdDevLogic(this IEnumerable<int> source, int buffer = 1)
{
    if (source == null)
    { throw new ArgumentNullException("source"); }
 
    var data = source.ToList();
    var average = data.Average();
    var differences = data.Select(u => Math.Pow(average - u, 2.0)).ToList();
    return Math.Sqrt(differences.Sum() / (differences.Count() - buffer));
}

Comments