f# - F# 中的 GroupBy 和每个组的平均值

标签 f# group-by

我是 F# 的新手,在进行简单的第一个查询时遇到了麻烦。我有一个数据集,我想根据代码(在数据中重复)对美元金额进行分组。然后,对于每个组,我想要每个组的美元金额的平均值(以及最终的标准差)。另外,我只想查看一个providerID,因此需要“where”子句。根据我的研究,我已经做到了这一点:

let dc = new TypedDataContext()

let query2 = query { for x in dc.MyData do
                     groupBy x.Code into g
                     where (x.ProviderId = "some number of type string")
                     let average = query { for n in g do
                                           averageBy n.DollarAmt }
                     select (g.Key, average) }
System.Console.WriteLine(query2)

这样我得到一个编译错误,提示“命名空间或模块‘x’未定义。” 我不明白这一点,因为当我运行仅收集具有指定提供程序ID的数据的查询时,它没有提示这个“x”,并且对于这个更大的查询,我遵循与此“x”相同的格式。

有什么想法吗?预先感谢您。

最佳答案

来自@kvb的评论:在groupBy之后,您只能访问组g,而不能访问单个项目x。尝试将 where 放在 groupBy 之前。

关于f# - F# 中的 GroupBy 和每个组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821519/

相关文章:

f# - 函数 [x] -> ... 是如何工作的

c# - 是否有 Hilbert-Huang 变换的 .Net(首选 F# 或 C#)实现?

php - MySQL:唯一分组

python - 用标准定标器功能代替手动标准化

python - 使用 python 使用逗号分隔值针对键聚合/压缩数据

.net - 如何验证 F# 代码是否符合 CLS

f# - 带有类型注释的 List.reduce 部分应用程序给出错误 FS0030

Python pandas 数据框根据条件分组

mysql - 合并具有部分关系的两个表

reflection - 在运行时创建匿名记录类型