【发布时间】:2010-06-24 00:29:19
【问题描述】:
我有一个日期和值的列表,格式为:
{{{dateInfo1},value1},{{dateInfo2},value2},...,{{dateInfoN},valueN}}
带有一些实际日期和值:
{{{1971, 1, 31, 0, 0, 0.}, 1.0118}, {{1971, 2, 28, 0, 0, 0}, 1.0075},
..., {{2010, 5, 31, 0, 0, 0.}, 1.0403}}
对于那些好奇的人,这是从FRED database 中提取的美元与加元值的列表。
我想简单地从值 2 中减去 value1,然后创建一个新列表,其中包含以下形式的数据:
{{{dateInfo1},0},{{dateInfo2},change1},...,{{dateInfoN},changeN-1}}
(其中 change1 为 value2-value1)
我知道必须有一种相对简单的方法来使用函数式编程来完成此操作,而不是使用索引变量和计数以及所有废话的 Do 或 While。我试图完成的方法必须相对稳健,因为我会自动从具有相同格式但不同时间间隔的源中提取数据集。如果我不必指定 ListPlot 日期间隔(如果我从列表中删除 dateInfo 会发生这种情况),那么重新绘制会容易得多。
我熟悉文档中心和非编程 Mathematica 功能。我一直在使用 Mathematica 学习编程,并且真的很想将这种能力扩展到函数式编程中,但是发现有关该主题的大多数资源都太难了。我觉得我正处于学习曲线的那个高峰,它即将点击到位,但现在我正在挣扎。至少,如果您有很好的函数式编程资源,我会非常乐意研究这些!任何帮助深表感谢!抱歉,如果是 TMI,但我相信你们中的许多人都有同样的感受。
【问题讨论】:
-
您可能已经注意到,当您尝试保持前导 0 时,所有提供的解决方案都会有点尴尬,这在 AFAICT 数学上毫无意义。我认为宇宙正试图在那里告诉你一些事情......
-
我知道前导 0 在数学上没有多大意义,但就表示而言,它更有意义。例如,如果在分析中使用 1971 作为基准年,那么从 1 月到 2 月的变化应该是 2 月到 1 月。如果该值显示为 2 月的变化,则演示文稿会更合乎逻辑,特别是因为我将绘制数据。
标签: list date functional-programming wolfram-mathematica