在 R zoo 中合并时间序列数据,连接格式错误
Merging time series data in R zoo, joins are malformed
我是 R 的新手,尝试使用 zoo 合并 4 个数据集,2 个数据集合并得很好。
然而,另外 2 个数据集给我 o/p 如下:
tmpA
2016-08-09 23:59:55 21.703
2016-08-09 23:59:56 21.703
2016-08-09 23:59:57 21.703
2016-08-09 23:59:58 21.703
2016-08-09 23:59:59 21.703
2016-08-10 00:00:00 21.703
tmpB
2016-08-09 23:59:52 24.600
2016-08-09 23:59:53 24.600
2016-08-09 23:59:54 24.600
2016-08-09 23:59:55 24.600
2016-08-09 23:59:56 24.600
2016-08-09 23:59:57 24.599
代码
infoA.zoo <- read.zoo(infoA.dfH, header = TRUE, tz = "")
infoB.zoo <- read.zoo(infoB.dfH, header = TRUE, tz = "")
#dfH is data.frame
#I am discretizing it over 1 sec.
merged = merge( tmpA, tmpB)
输出
Date A B
2016-08-09 23:59:56 NA 24.600
2016-08-09 23:59:57 21.703 NA
2016-08-09 23:59:57 NA 24.599
2016-08-09 23:59:58 21.703 NA
2016-08-09 23:59:59 21.703 NA
2016-08-10 00:00:00 21.703 NA
我尝试重现您的问题,但一切正常。我唯一改变的是,我将 tmpA
和 tmpB
中的分隔符从 space 更改为 ';'并引用日期字符串。此外,我将参数 sep=';'
添加到 read.zoo
函数。
tmpA
"2016-08-09 23:59:55";21.703
"2016-08-09 23:59:56";21.703
"2016-08-09 23:59:57";21.703
"2016-08-09 23:59:58";21.703
"2016-08-09 23:59:59";21.703
"2016-08-10 00:00:00";21.703
tmpB
"2016-08-09 23:59:52";24.600
"2016-08-09 23:59:53";24.600
"2016-08-09 23:59:54";24.600
"2016-08-09 23:59:55";24.600
"2016-08-09 23:59:56";24.600
"2016-08-09 23:59:57";24.599
R
# Copy tmpA string to clipboard
X <- read.zoo('clipboard', tz="", sep=';')
# Copy tmpY string to clipboard
Y <- read.zoo('clipboard', tz="", sep=';')
merge(X,Y)
X Y
2016-08-09 23:59:52 24.600 NA
2016-08-09 23:59:53 24.600 NA
2016-08-09 23:59:54 24.600 NA
2016-08-09 23:59:55 24.600 21.703
2016-08-09 23:59:56 24.600 21.703
2016-08-09 23:59:57 24.599 21.703
2016-08-09 23:59:58 NA 21.703
2016-08-09 23:59:59 NA 21.703
2016-08-10 00:00:00 NA 21.703
我是 R 的新手,尝试使用 zoo 合并 4 个数据集,2 个数据集合并得很好。
然而,另外 2 个数据集给我 o/p 如下:
tmpA
2016-08-09 23:59:55 21.703
2016-08-09 23:59:56 21.703
2016-08-09 23:59:57 21.703
2016-08-09 23:59:58 21.703
2016-08-09 23:59:59 21.703
2016-08-10 00:00:00 21.703
tmpB
2016-08-09 23:59:52 24.600
2016-08-09 23:59:53 24.600
2016-08-09 23:59:54 24.600
2016-08-09 23:59:55 24.600
2016-08-09 23:59:56 24.600
2016-08-09 23:59:57 24.599
代码
infoA.zoo <- read.zoo(infoA.dfH, header = TRUE, tz = "")
infoB.zoo <- read.zoo(infoB.dfH, header = TRUE, tz = "")
#dfH is data.frame
#I am discretizing it over 1 sec.
merged = merge( tmpA, tmpB)
输出
Date A B
2016-08-09 23:59:56 NA 24.600
2016-08-09 23:59:57 21.703 NA
2016-08-09 23:59:57 NA 24.599
2016-08-09 23:59:58 21.703 NA
2016-08-09 23:59:59 21.703 NA
2016-08-10 00:00:00 21.703 NA
我尝试重现您的问题,但一切正常。我唯一改变的是,我将 tmpA
和 tmpB
中的分隔符从 space 更改为 ';'并引用日期字符串。此外,我将参数 sep=';'
添加到 read.zoo
函数。
tmpA
"2016-08-09 23:59:55";21.703
"2016-08-09 23:59:56";21.703
"2016-08-09 23:59:57";21.703
"2016-08-09 23:59:58";21.703
"2016-08-09 23:59:59";21.703
"2016-08-10 00:00:00";21.703
tmpB
"2016-08-09 23:59:52";24.600
"2016-08-09 23:59:53";24.600
"2016-08-09 23:59:54";24.600
"2016-08-09 23:59:55";24.600
"2016-08-09 23:59:56";24.600
"2016-08-09 23:59:57";24.599
R
# Copy tmpA string to clipboard
X <- read.zoo('clipboard', tz="", sep=';')
# Copy tmpY string to clipboard
Y <- read.zoo('clipboard', tz="", sep=';')
merge(X,Y)
X Y
2016-08-09 23:59:52 24.600 NA
2016-08-09 23:59:53 24.600 NA
2016-08-09 23:59:54 24.600 NA
2016-08-09 23:59:55 24.600 21.703
2016-08-09 23:59:56 24.600 21.703
2016-08-09 23:59:57 24.599 21.703
2016-08-09 23:59:58 NA 21.703
2016-08-09 23:59:59 NA 21.703
2016-08-10 00:00:00 NA 21.703