gpt4 book ai didi

dataset - 有效地合并 mathematica 中的时间序列

转载 作者:行者123 更新时间:2023-12-01 01:28:16 27 4
gpt4 key购买 nike

我试图完成的事情似乎很普通,足以有一个有效的解决方案。

我正在使用 我有许多不同的 {{date1, value1},{date1, value1}...} 类型 - 您可以传递给 DateListPlot 的排序。

然而,问题在于这些仅部分重叠(有些可能有 95-2004 年的数据,有些可能有 1999 年至 2011 年的数据等等)

现在我希望能够做的是将这些合并到一个具有共同时间表的大列表中,即所有可用日期的 Union[]。然后会有值的数组,但在没有数据的地方用零。

有没有一种有效的方法来实现这一点?我有数百个这样的时间序列,并且制作一些循环整个事情的东西可能不是很有效(甚至制作起来很乏味)

任何帮助是极大的赞赏!

最佳答案

例如,

ClearAll[l1, l2];
l1 = {{date1, value1}, {date1, value2}, {date2, value3}, {date4, value4}}
l2 = {{date3, value5}, {date4, value5}, {date1, value6}}

然后
DeleteDuplicates[Union[l1, l2], #1[[1]] \[Equal] #2[[1]] &]

yield {{date1, value1}, {date2, value3}, {date3, value5}, {date4, value4}} .这意味着如果您在同一日期有两个数据点,并且它们不同,则会丢失一个。 (对我而言)不清楚这是否是您需要的,所以也许您可以添加更多细节。

另一方面,这
Transpose[{DeleteDuplicates[Last@Last@Reap@Scan[Sow[#[[1]]] &, Union[l1, l2]]],
Last@Reap[Scan[Sow[#[[2]], #[[1]]] &, Union[l1, l2]]]}]

消除重复的标题并收集每个标题下的值,因此:
{{date1, {value1, value2, value6}}, 
{date2, {value3}},
{date3, {value5}},
{date4, {value4, value5}}}

(即,它收集每个日期的所有值)。

你想要的一些例子会很好。

关于dataset - 有效地合并 mathematica 中的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com