我有一个CSV文件,其中fst列是标题,接下来700列是一些int数据.
Title D1 D2 D3 D4 .. D700
Name1 0 1 7 5 48
Run Code Online (Sandbox Code Playgroud)
我尝试使用CsvProvider读取文件,然后将数据转换为我的自定义类型
type DigitRecord = { Title:string; Digits:int[] }
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何将所有列数据(除了带标题的第一个)放入int []数组中.
let dataRecords =
CSV.Rows
|> Seq.map (fun record -> {Title = record.Title; Digits = ???})
Run Code Online (Sandbox Code Playgroud)
我希望得到一个标题为Title = Name1和Digits = [| 0,1,7,5 ... 48 |]的记录
我是F#的新手,我很感激任何帮助!
CsvParser
我认为最简单的方法是这样使用:
let readData (path : string) seps =
CsvFile.Load(path, seps).Rows
|> Seq.map
(fun row -> row.Columns.[0], row.Columns |> Array.skip 1 |> Array.map int)
|> Seq.map
(fun (title, digits) -> {Title = title; Digits = digits})
Run Code Online (Sandbox Code Playgroud)