【发布时间】:2020-04-21 21:13:12
【问题描述】:
我需要像下面这样的数据框吗?
Label Time Value
"X" [0, 1, 2] [1.1, 1.5, 2.1]
"Y" [0, 1, 2] [2.1, 3.1, 4.5]
"Z" [0, 1, 2] [3.3, 3.5, 4.2]
我想要一个数据框,其中有一列表示时间序列标签,另一列表示时间属性,另一列表示时间序列。理想情况下,向量/序列的长度不相等。
如果这不可能,请告知如何最好地对数据建模,其中我有数以万计的时间序列可能不同的长度,每个时间序列都与一个多部分标签相关联。
我的问题是我有一个格式为:
ID Type Num Tag Time Value
X A 1 T1 0.0 1.1
...
X A 1 T1 0.9 2.1
...
X A 6 T4 0.0 3.1
...
X A 6 T4 0.6 4.5
...
Y C 5 T3 0.0 3.3
...
Y C 5 T3 0.8 4.2
我正在寻找的是这样的:
ID Type Num Tag Time Value
X A 1 T1 c(0.0, ..., 0.9) c(1.1, ..., 2.1)
...
X A 6 T4 c(0.0, ..., 0.6) c(3.1, ..., 4.5)
...
X C 5 T3 c(0.0, ..., 0.8) c(3.3, ..., 4.2)
...
到目前为止,我取得的最好成绩是将向量缩减到相同的长度,然后将每个 Time 属性用作一个列,其中的值排序在下面。
*谢谢你*
【问题讨论】:
-
您能解释一下为什么需要转换格式吗?毕竟,格式化不是建模。这种转换预期会完成什么?
-
感谢您的快速响应......雇主更喜欢这种方式。 1.使用目标形式的数据进行聚类算法显然更直接一些,例如
tsclust(...),使用时间序列的list! 2. 在原始形式中,PK 本质上是 (ID, Type, Num, Time),而在目标格式中,PK 是 (ID, Type, Num),这对我来说似乎也更合理。我需要为每种类型分别对系列列表进行聚类,并根据每个聚类中的标签数,以某种方式相应地标记每个聚类!!!奇怪,诶?! -
data.frame(Label=c("X","Y","Z"), Time=I(list(0:2, 0:2, 0:2)), Value=I(list(c(1.1, 1.5, 2.1), c(2.1, 3.1, 4.5), c(3.3, 3.5, 4.2))))怎么样?
标签: r time-series