1

我有一个包含多个时间序列的框架,我需要标准化这些值。然后,我需要取每个系列的第一个元素,将系列的所有元素除以它。我尝试使用以下代码:

let normalize =
    MyFrame
    |> Frame.mapColValues (fun os ->
       let osAsFloat = os.As<float>()
       let firstItem = osAsFloat.GetAt(0)
       osAsFloat / firstItem)



但我有一个错误:osAsFloat.GetAt(0)。我发现的唯一方法是转换单个系列中的值,然后在 for 循环中将函数应用于值。有没有更实用的方法来达到同样的效果?谢谢。

EDIT
MyFrame 来自下一个函数,它从 Yahoo! 下载数据!金融:

let loadStocks symbols startDate endDate =
    [for symbol in symbols ->
        symbol =>
            let data = StockData.Load(urlFor symbol startDate endDate).Rows
            Series.ofObservations [for d in data -> (d.Date, d.Close)]]
    |> Frame.ofColumns
    |> Frame.sortRowsByKey
let MyFrame = loadStocks symbolList startDate endDate


它的类型是Frame<DateTime, string>

4

0 回答 0