0

我正在尝试通过从另一个数据集中获取间隔来创建一个新数据集,例如,将 dataset1 作为输入,将 dataset2 作为输出:

dataset1 = [1, 2, 3, 4, 5, 6]
dataset2 = [1, 2, 2, 3, 3, 4, 4, 5, 5, 6]

我设法使用数组来做到这一点,但对于 mlib,需要一个数据集。

我的数组代码:

def generateSeries(values: Array[Double], n: Int): Seq[Array[Float]] = {
    var res: Array[Array[Float]] = new Array[Array[Float]](m)
    for(i <- 0 to m-n){
        res :+ values(i to i + n)
    }
    return res
}

FlatMap 似乎是要走的路,但函数如何在数据集中搜索下一个值?

4

1 回答 1

0

这里的问题是数组与 DataSet 完全不同。DataSet 是无序的并且没有索引,因此从数组的角度考虑对您没有帮助。去 Seq 并在不使用索引和位置的情况下对其进行处理。

因此,要在 DataSet 上表示类似数组的行为,您需要创建自己的索引。这可以简单地通过将值与我们所代表的“抽象数组”中的位置配对来完成。

因此,您的 DataSet 的类型将类似于[(Int,Int)],其中第一个是索引,第二个是值。它们将无序到达,因此您需要以更实用的方式重新设计您的逻辑。目前尚不清楚您要达到的目标,但我希望我给了您一个提示。否则,在我的答案的评论中更好地解释预期结果,我将进行编辑。

于 2016-09-28T07:14:17.553 回答