У меня проблема с пониманием подписей Frame.map (и, в конечном счете, и других тоже), когда я мог легко разобраться Series.map .
Вот краткий пример:
let ts1 =
series
[ ("A", "A1", "p1") => 0.5
("A", "A1", "p2") => 2.
("A", "A2", "p3") => 2.
("A", "A2", "p4") => 0.5 ]
let ts2 =
series
[ ("A", "A1", "p1") => "A"
("A", "A1", "p2") => "B"
("A", "A2", "p3") => "C"
("A", "A2", "p4") => "D" ]
let F = ["ts1" =?> ts1 ; "ts2" =?> ts2] |> Frame.ofColumns
Допустим, я хочу применить функцию к Серии ts1, Там нет проблем:
ts1 |> Series.map (fun _ v -> v * 2.)
Работает как положено ...
Но если я захочу использовать, скажем для примера:
let fun1 (a: float) (b: string) =
match b with
|"B" -> a ** 2.
|"C" -> a ** 3.
|_ -> 0.
На кадре F , я просто рисую фигуруэто из.Я пробовал вызывать столбцы.
Я не возражаю против некоторой помощи, так как я не могу понять это с предыдущими сообщениями / Документация документа / и т.д. ... Я просто застрял в подписи ...
let F2 = F |> Frame.mapRows (fun k a -> (fun1 a.GetAs<float>("ts1") a.GetAs<string>("ts2")))