1
我不明白爲什麼resmplU
在下面的代碼是一個空的系列。爲什麼Series.resampleUniform會返回一個空系列?
我懷疑問題是我不明白參數nextKey
在resampleUniform
的簽名中的作用。該幫助表示它「用於生成範圍內的所有鍵」,但我無法弄清楚這意味着什麼。
open Deedle
let dateRange skip (startDate: System.DateTime) endDate =
Seq.initInfinite float
|> Seq.map (fun i -> startDate.AddDays (skip * i))
|> Seq.takeWhile (fun dt -> dt <= endDate)
let dt3 = DateTime(2017,4,1)
let dt4 = DateTime(2017,4,30)
let dt5 = DateTime(2017,4,15)
let dateR = dateRange 2.0 dt3 dt4
let valsR = [1..dateR |> Seq.length]
let tseries = Series(dateR, valsR)
let resmplU =
tseries
|> Series.resampleUniform Lookup.ExactOrGreater (fun x -> x < dt5) id
運行此代碼後,我得到:
val dt3 : DateTime = 4/1/2017 12:00:00 AM
val dt4 : DateTime = 4/30/2017 12:00:00 AM
val dt5 : DateTime = 4/15/2017 12:00:00 AM
val dateR : seq<DateTime>
val valsR : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15]
val tseries : Series<DateTime,int> =
series [ 4/1/2017 12:00:00 AM => 1; 4/3/2017 12:00:00 AM => 2; 4/5/2017 12:00:00 AM => 3; 4/7/2017 12:00:00 AM => 4; 4/9/2017 12:00:00 AM => 5; ... ; 4/29/2017 12:00:00 AM => 15]
val resmplU : Series<bool,Series<DateTime,int>> = series [ ]
任何見解?
好了,我現在好理解。我發現我在使用'id'作爲'nextKey'參數時犯了一個錯誤。但是在我看來,示例代碼應該用'not'替換'id',因爲函數'not'應該計算下一個布爾鍵。如果是這樣的話,我應該得到一個有兩個鍵的系列,真假。但我得到一個空的系列。我錯過了什麼? – Soldalma
也許問題在於'not'計算下一個鍵,但不會在'bool'類型中建立傳遞關係(排序)。 – Soldalma
我明白你現在要做的事情!請參閱編輯。 –