2
ディードルシリーズの最初の欠損値のキーを見つける必要があります。私は以下の関数を書くことができました。これはうまくいくようです。私はDeedleがもっと良い方法を持っているのだろうか、そしてより一般的には欠けている(または欠損していない)値のすべてのキーを返す高速な関数だろうと思う。Deedleシリーズで欠損値の最初のキーを見つけるより良い方法はありますか?
let firstMissing (s: Series<'a,_>) =
let e = (s.Keys).GetEnumerator()
let rec loop() =
if e.MoveNext() then
if s |> Series.has e.Current then loop()
else e.Current |> Some
else None
loop()
let s2 = Series.ofOptionalObservations [ 1 => Some(1.0); 2 => None ]
// val it : Series<int,float> =
series [ 1 => 1; 2 => <missing>]
firstMissing s2
val it : int option = Some 2
let s4 = Series.ofValues [1..4]
firstMissing s4
val it : int option = None
ありがとうございました。私は 'Series.observationsAll'を知らなかった。私の驚いたことに、私が使った方法は 'Series.observationsAll'を使うよりも約20%速くなっています。 – Soldalma