F# 在F中处理要保存为.csv的选项值#
我正在使用Fsharp进行数据挖掘。为了确保在数据挖掘过程中不会出现空值,我需要确保空值不会通过我正在解析的内容,因此我使用了double选项。数据的屏蔽版本如下所示F# 在F中处理要保存为.csv的选项值#,f#,F#,我正在使用Fsharp进行数据挖掘。为了确保在数据挖掘过程中不会出现空值,我需要确保空值不会通过我正在解析的内容,因此我使用了double选项。数据的屏蔽版本如下所示 type structure = { time: double option pressure: double option force: double option } let rawData = [| {| time = Some(15); pressure = Some(50); force =
type structure = {
time: double option
pressure: double option
force: double option }
let rawData =
[| {| time = Some(15); pressure = Some(50); force = Some(100)|}
{| time = Some(16); pressure = Some(55); force = Some(110)|}
{| time = Some(17); pressure = None); force = Some(110)|}
{| time = Some(16); pressure = Some(65); force = None|}
{| time = Some(18); pressure = Some(70); force = Some(120)|} |]
我目前正在将其保存到Deedle数据框并保存到.csv。但是,当我这样做时,这些值与“Some()”关联。对于“无”值,它们也有空白值
我怎样才能去掉数字周围的“Some()”并将None值改为“NaN”,然后将其保存为.csv
我如何才能去掉数字周围的“Some()”并将None值改为“NaN”
创建一个带有签名的函数double option->string
。您可以使用匹配
表达式处理选项
让DoubleOptionStringFlatten=
功能
|一些(d:double)->d.ToString()
|无->“南”
然后将其保存到.csv
让csvLineFromStructure(s:structure)=
[s.时间;s.压力;s.力量]
|>Array.map doubleOptionStringFlatten
|>String.concat“,”
//然后为每个结构创建一行:
让csvFromStructures(结构:结构[])=
structures |>Array.map csvLineFromStructure |>String.concat Environment.NewLine