【发布时间】:2018-05-31 04:26:39
【问题描述】:
假设一群人p 在i * k 的二维网格中移动一堆对象o(最终是n 维)。
每当p 移动时,我都会拍摄i x k 网格的快照(这实际上是通过js 回调发生的)。
因此,对于 p Alice 和 os c("foo", "bar),以及 i、k 各 2 个,例如 2017-12-24 18:00:00,这给出了类似的结果
1 2
1 "foo"
2 "bar"
四秒后,2017-12-26 18:00:04,比方说,
1 2
1 "foo"
2 "bar"
对于其他一些 p Bob,我得到了类似的快照,但关键是在不同的时间,因为Bob 选择在不同的时间移动对象。
对于大部分分析,我将只查看每个p 的最终(最新)快照,然后高兴地查看abind() p x i x k 数组中的整个内容。
但我也想保留不规则排序的时间序列。 我如何在 R 中以一种巧妙、规范的方式最好地存储这些数据?
由于我不能 abind() 在不规则的时间点上(因为每个人都不同),我的当前方法只是将快照放在每个 @987654346 的列表中@,比如,说,
data$alice <- list(
`2017-12-24 18-00-00` = matrix(data = c("foo", NA, NA, "bar"), nrow = 2),
`2017-12-24 18-00-04` = matrix(data = c("foo", NA, "bar", NA), nrow = 2))
data$bob <- ...
等等。 (也许,我宁愿使用正确的 lubricate datetimes 作为列表元素属性,但这是细节)。
这行得通,但感觉怪怪的,原因有很多:
- 列表本身不支持时间序列信息,因此将它们添加为列表元素属性感觉很麻烦。
- 该列表很难看出所有单个矩阵的等级相同(因为它们必须如此)。 (我想这是不可避免的,因为我无法有意义地
abind())。 - 我的直觉想法通常很糟糕。必须有更好的方法。
我是时间序列的新手,我只是想确保我不是很愚蠢并且(很差)重新发明轮子来解决一个规范解决的问题。
另外:这将成为一个包的一部分,以及一个 S3 类,所以我想把它做好。
注意事项/旁白:
- 我已经查看了 zoo 包,但是虽然它提供了不规则时间间隔(我有),但它似乎没有为不同提供一个类> 不定期的时间间隔。
- 我不想以整洁的格式存储这些数据。我在Jeff Leek这里;网格的矩阵表示本质上是有意义的,我想保留它。还会有一些矩阵代数,如果应用于整洁的数据,那只会产生真正不透明的代码。也就是说,如果我在这里是愚蠢的,以及以规范的方式以整齐的形式存储此类数据,我愿意接受。
Ps.:为无耻的伪代码/数学道歉。希望它仍然有助于使事情更清楚。
【问题讨论】:
-
你看过
xts吗?我必须承认我不太明白你想要做什么,除了扩展时间序列格式,这就是xts的全部内容。 -
Alice 和 Bob 在他们的列表中是否有相同的时间,或者时间是全球唯一的?整个结构中的所有矩阵是否都具有相同的维度?
-
爱丽丝和鲍勃可能在他们的列表中意外地有相同的时间。整个结构中的矩阵具有相同的维度@G。格洛腾迪克。
-
我已经看过
xts@AkselA,虽然我不知道如何让它与这些不规则的时间序列一起工作,每个@都不同987654354@.
标签: r matrix time-series zoo tidyverse