请考虑这个由男人和女人组成的数据集,我根据几个变量在第二个时刻进行过滤:
type ls = JsonProvider<"...">
let dt = ls.GetSamples()
let dt2 =
dt |> Seq.filter (fun c -> c.Sex = "male" && c.Height > Some 150)
dt2
[{"sex":"male","height":180,"weight":85},
{"sex":"male","height":160" "weight":60},
{"sex":"male","height":180,"weight":85}]
假设我想添加第四个键“体重指数”或“bmi”,其值大致由“体重”/“身高”给出。因此我期望:
[{"sex":"male","height":180,"weight":85, "bmi":(180/85)},
{"sex":"male","height":160" "weight":60, "bmi":(160/60},
{"sex":"male","height":180,"weight":85, "bmi":(180/85)}]
我以为map.Add https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/map.add%5B'key,'value%5D-method-%5Bfsharp%5D可能有帮助。
let dt3 = dt2.Add("bmi", (dt2.Height/dt2.Weight))
不幸的是,它返回一个错误:
error FS0039: The field, constructor or member 'Add' is not defined
我确信我的代码中还有更多错误,但如果没有这个函数,我实际上无法查找它们。至少我是否正确地处理了这个问题?