Felice Bruno
Felice Bruno

Reputation: 195

Deedle: errors using Frame.mapColValues

I'm following a tutorial:
http://dkowalski.com/blog/archive/2014/01/11/f-deedle-and-computational-investing.aspx
and when I try to apply normalization to all the columns of "stocks" Frame, using Frame.mapColValues, I obtain the following error message:

System.InvalidOperationException: OptionalValue.Value: Value is not available in Deedle.OptionalValue``1.get_Value() in c:\Tomas\Public\Deedle\src\Deedle\Common\Common.fs:riga 35 in [email protected](ObjectSeries``1 os) in C:\Users\Bruno-Astarita\Documents\Visual Studio 2013\Projects\TestDeedle02\TestDeedle02\TestTutorial01.fsx:riga 52 in <StartupCode$Deedle>.$Series.f@257-13[K,V,R](Func``3 f, Int32 i, K key, V v) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 358 in <StartupCode$Deedle>[email protected](Int32 i, Tuple``2 tupledArg) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 355 in [email protected](b& ) in Microsoft.FSharp.Collections.IEnumerator.MapEnumerator``1.System-Collections-IEnumerator-MoveNext() in Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable``1 source) in Microsoft.FSharp.Collections.ArrayModule.OfSeq[T](IEnumerable``1 source) in Deedle.Series``2.Select[R](Func``3 f) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 352 in Deedle.Series``2.Select[R](Func``2 f) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 365 in Deedle.SeriesModule.MapValues[T,R,K](FSharpFunc``2 f, Series``2 series) in c:\Tomas\Public\Deedle\src\Deedle\SeriesModule.fs:riga 451 in <StartupCode$FSI_0046>.$FSI_0046.main@() in C:\Users\Bruno-Astarita\Documents\Visual Studio 2013\Projects\TestDeedle02\TestDeedle02\TestTutorial01.fsx:riga 49 Stopped due to error

I tried to find the problem making a step-by-step procedure based on source code in FrameModule.fs, and the error raises at the instruction Series.mapValues f. Where I'm wrong?
Many thanks.

Update
After many tests, the problem seems be arised by the row let firstItem = osAsFloat.GetAt(0) from the tutorial. If I try to substitute it with let firstItem = 2.0 everything is ok. Still is not clear for me this behaviour.

Upvotes: 1

Views: 204

Answers (1)

Felice Bruno
Felice Bruno

Reputation: 195

Finally I found the reason of problem. In some Series in the Frame, there are missing values in correspondence to the first element. If I do not use those Series, everything is ok.

Upvotes: 0

Related Questions