为了账号安全,请及时绑定邮箱和手机立即绑定

使用其他列值条件 LINQ 返回列值的标准偏差

使用其他列值条件 LINQ 返回列值的标准偏差

C#
撒科打诨 2022-06-12 16:27:53
我有一张桌子,db.Men有三列nvarchar "名称"诠释“年龄”nvarchar“状态”该Status列只有三个值:“Happy”、“Normal”和“Bad”。我需要计算“快乐”或“正常”年龄的平均值和标准差:using System.Linq var ctx     = new DataClasses1DataContext();double? avg = (from n in ctx.men               where n.status == "Happy"               select n.age).Average();int? sum    = (from n in ctx.men               where n.status == "Happy"               select n.age).Sum();我计算了平均值和总和。如何计算此条件状态下的标准差?
查看完整描述

2 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

Happy将年龄(或每个年龄)粘贴Status到列表中,然后计算标准偏差。本文作为确定标准偏差的良好过程:

所以像:


var happyAges = ctx.Men.Where(i=>i.status == "Happy")Select(i=>i.age);

var happySd = CalculateStdDev(happyAges);

此外,您可以将标准偏差方法设为静态,并使用扩展方法在一个请求中完成所有操作。


查看完整回答
反对 回复 2022-06-12
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

我这样做了,它对我有用:


int?[] array = (from a in ctx.men where a.status == "Happy" select a.age).ToArray();

double? AVG = array.Average();

double? SumOfSquaresOfDifferences = array.Select(val => (val - AVG) * (val  - AVG)).Sum();

double? SD = Math.Sqrt(Convert.ToDouble(SumOfSquaresOfDifferences) / array.Length);



查看完整回答
反对 回复 2022-06-12
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信