我需要合并两个时间序列,似乎最好使用merge.zoo来完成。当我尝试将两个数据帧中的每一个转换为动物园时,我收到以下错误:
zoo(FNCC_short)
Error in as.matrix.data.frame(x) :
dims [product 10] do not match the length of object [19]
R在哪里找到19的长度?我有:
> class(FNCC_short)
[1] "data.frame"
> length(FNCC_short)
[1] 2
> length(FNCC_short[,1])
[1] 10
> length(FNCC_short[,2])
[1] 10
我无法使用read.zoo(...)
来获取数据,因为csv时间字段的格式不正确 - 我必须先读取csv文件,然后修复时间格式。
这是FNCC_short:
> FNCC_short
time_FNCC FNCC
1 2013-02-07 09:00:00 2.556
2 2013-02-07 09:01:00 2.556
3 2013-02-07 09:02:00 2.552
4 2013-02-07 09:03:00 2.552
5 2013-02-07 09:04:00 2.552
6 2013-02-07 09:05:00 2.552
7 2013-02-07 09:06:00 2.552
8 2013-02-07 09:07:00 2.539
9 2013-02-07 09:08:00 2.539
10 2013-02-07 09:09:00 2.539
> class(FNCC_short$time_FNCC)
[1] "POSIXlt" "POSIXt"
所以,第一列是POSIX时间。为什么这个简单的转换不起作用?
答案 0 :(得分:1)
您可以使用指定format
选项将第一列和第二列转换为动物园索引。
Lines <- 'time_FNCC time FNCC ## I had to add the 'time' column name here
1 2013-02-07 09:00:00 2.556
2 2013-02-07 09:01:00 2.556
3 2013-02-07 09:02:00 2.552
4 2013-02-07 09:03:00 2.552
5 2013-02-07 09:04:00 2.552
6 2013-02-07 09:05:00 2.552
7 2013-02-07 09:06:00 2.552
8 2013-02-07 09:07:00 2.539
9 2013-02-07 09:08:00 2.539
10 2013-02-07 09:09:00 2.539'
dat <- read.zoo(text = Lines, index = 1:2, tz = "")
dat
2013-02-07 09:00:00 2013-02-07 09:01:00 2013-02-07 09:02:00 2013-02-07 09:03:00
2.556 2.556 2.552 2.552
2013-02-07 09:04:00 2013-02-07 09:05:00 2013-02-07 09:06:00 2013-02-07 09:07:00
2.552 2.552 2.552 2.539
2013-02-07 09:08:00 2013-02-07 09:09:00
2.539 2.539