【发布时间】:2019-02-12 01:33:33
【问题描述】:
晚上好!我是一个刚接触 F# 的程序员。我正在尝试进行一些简单的数据分析和绘图,但我无法弄清楚如何正确访问数据。我完成了所有设置并使用了 CSVProvider,它运行良好:
#load @"packages\FsLab\FsLab.fsx"
#load @"packages\FSharp.Charting\FSharp.Charting.fsx"
open Deedle
open FSharp.Data
type Pt = CsvProvider<"C:/Users/berkl/Test10/CGC.csv">
let data = Pt.Load("C:/Users/berkl/Test10/CGC.csv")
然后,我提取特定条目的数据:
let test = data.Rows |> Seq.filter (fun r -> r.``Patient number`` = 2104)
这按预期工作,并将以下内容打印到 FSI:
test;;
val it : seq<CsvProvider<...>.Row> =
seq
[(2104, "Cita 1", "Nuevo", "Femenino", nan, nan, nan);
(2104, "Cita 2", "Establecido", "", 18.85191818, 44.0, 103.0);
(2104, "Cita 3", "Establecido", "Femenino", 17.92617533, 46.0, 108.0);
(2104, "Cita 4", "Establecido", "Femenino", nan, nan, nan); ...]
这是我不知所措的地方。我想取出第五列并将其绘制在第六列上。而且我不知道如何访问它。
到目前为止,我能做的是访问其中一列中的单个值:
let Finally = Seq.item 1 test
let PtHt = Finally.Ht_cm
非常感谢任何帮助!
【问题讨论】:
-
您正在连续访问
Patient number,所以不能以相同的方式访问第 n-th 列吗?然后你不能map在行上创建 x,y 坐标来绘制吗?