0

我目前正在处理 CSV 文件中的巨大时间序列数据集。大约有 73 000 个观察值,我需要对它们进行切片以进行回测。我尝试通过 while 和 for 循环,但它们根本没有解决,即使使用 break 规则,循环也只是陷入无穷大。Itertools 也没有太大帮助。

如果我试图描述我想要得到的东西 - 假设有 10 个观察值(1、2、3、4、5、6、7、8、9、10)。我需要创建一个循环切片(1,2),(2,3),(3,4),(4,5)等等,直到(9,10)。但是如果没有像这样手动编码

slice(1,2,1)
slice(2,3,1)
slice(3,4,1)
4

1 回答 1

0

我很不清楚你想要什么。如果在其中包含 2 个元素或 3 个元素,R则可以使用combn函数执行此操作:

t(combn(1:10, 2))

t(combn(1:10, 3))


# > t(combn(1:10, 2))
# [,1] [,2]
# [1,]    1    2
# [2,]    1    3
# [3,]    1    4
# > t(combn(1:10, 3))
# [,1] [,2] [,3]
# [1,]    1    2    3
# [2,]    1    2    4
# [3,]    1    2    5
# [4,]    1    2    6

如果它是一个大数据集,您可能会遇到内存问题。可能的组合数是......

> choose(73000, 3)
[1] 6.48335e+13
于 2020-07-01T17:45:02.353 回答