我正在学习一个教程:
http://dkowalski.com/blog/archive/2014/01/11/f-deedle-and-computational-investing.aspx
当我试图使用Frame.mapColValues对“stock”框架的所有列应用规范化时,我会得到以下错误消息:
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 FSI_0046.normalized@52-8.Invoke(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>.$Series.newVector@354-1.Invoke(Int32 i, Tuple``2 tupledArg) in c:\Tomas\Public\Deedle\src\Deedle\Series.fs:riga 355 in Microsoft.FSharp.Collections.IEnumerator.mapi@129.DoMoveNext(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
我试图找出基于FrameModule.fs源代码的一步一步的过程的问题,并在指令Series.mapValues f中引发错误。我哪里错了?
非常感谢。
更新
经过多次测试后,这个问题似乎由教程中的行let firstItem = osAsFloat.GetAt(0)解决了。如果我试着用let firstItem = 2.0代替它,一切都很好。对我来说还不清楚这种行为。
发布于 2014-10-26 14:48:50
最后,我找到了问题的原因。在帧中的某些系列中,与第一个元素对应的值是缺失的。如果我不使用那些系列,一切都好。
https://stackoverflow.com/questions/26116602
复制相似问题