2017-05-17 7 views
2

이 문제는 좀 측값와 Series<'K,'T opt>Working with missing values in Deedle Time Series in F# (1)F 번호 (2)

가정하자 관련된에서 Deedle 시계열 값을 누락 작업 전 일련

을 얻은 예를 들어

series4;; 
 val it : Series<int,int opt> = 
 1 -> 1   
 2 -> 2   
 3 -> 3   
 4 -> <missing> 
나는 이런 식으로 가지고 있었다

:

let series1 = Series.ofObservations [(1,1);(2,2);(3,3)] 
let series2 = Series.ofObservations [(1,2);(2,2);(3,1);(4,4)] 

let series3 = series1.Zip(series2,JoinKind.Outer);; 
let series4 = series3 |> Series.mapValues fst 
을 617,451,515,

그러나 Deedle 당신은

let series1_plus_2 = series1+series2 

val series1_plus_2 : Series<int,int> = 
1 -> 3   
2 -> 4   
3 -> 4   
4 -> <missing> 

당신이 유형 Series<int,int>도 자연스럽게 값을 누락 할 수 있음을 알 수 할 경우. 그리고 이것은 내가 어떻게가 "동일한"값하지만 유형 Series<int,int>와 일련의 다시받을 수 있나요, 누락 된 값 그래서 제 질문 유형 Series<int,int opt>의 series4 주어

처리 Deedle에서 함수를 사용하는 자연적인 방법을 보인다 ????

특히, 이상한 일들 예를 ​​들어

을 일어나고, Series.dropMissing이 예상되는 동작 series4

Series.dropMissing series4;; 
 val it : Series<int,int opt> = 
 1 -> 1   
 2 -> 2   
 3 -> 3   
 4 -> <missing> 

의 누락 된 값을 삭제하지 적용하지 않은 경우!

답변

3

여기서 중요한 문제는 int opt이 누락 된 값을 처리하기위한 Deedle 표준 방법이 아니라는 것입니다. series4의 값은 누락되지 않지만 값은 OptionalValue.Missing입니다. 예를 들어 Series<int, int opt>Series<int, int>으로 변환 할 수 있습니다. let series4' = series4 |> Series.mapAll (fun _ v -> v |> Option.bind OptionalValue.asOption)