我在时间序列分析中包含了许多包含不同ARIMA-Orders的表格。一个简短的例子是这样的: 这两个表是Order1和Order2,包含a)不同的订单b)不同的组合频率。
Order1
(1,0,1) (1,1,1) (2,1,4)
4 5 9
Order2
(1,0,1) (3,0,4) (0,1,1) (2,1,2)
1 2 7 10
在上一步中,两个表按sort(Order1)和sort(Order2)
排序我想逐行合并两个表,以获得一个" big"有两行的表。 我的预期输出应该是这样的:
(1,0,1) (1,1,1) (2,1,4) (3,0,4) (0,1,1) (2,1,2)
Order 1 4 5 9 0 0 0
Order 2 1 0 0 2 7 10
或者它可能只是一个大表中的两个输入表,其中包含"不同的列名和lentghs"
(1,0,1) (1,1,1) (2,1,4)
Order 1 4 5 9
(1,0,1) (3,0,4) (0,1,1) (2,1,2)
Order 2 1 2 7 10
我尝试过像merge或rbind这样的东西,但它没有用。
答案 0 :(得分:0)
dd1 <- as.data.table(t1)
dd2 <- as.data.table(t2)
merge(dd1, dd2, by="Var1", incomparables=NA, all=TRUE)
可以吗?
> merge(dd1,dd2, by="Var1", incomparables = NA, all=TRUE)
Var1 Freq.x Freq.y
1 ( 2 1 1 ) ( 1 1 1 ) 1 NA
2 ( 1 1 0 ) ( 1 1 1 ) 3 NA
3 ( 0 1 1 ) ( 0 1 1 ) 29 93
4 ( 2 1 1 ) ( 0 1 1 ) 54 2
5 ( 1 1 0 ) ( 0 1 1 ) 58 NA
6 ( 2 1 0 ) ( 0 1 1 ) NA 54
要将频率设为行:
> ddd <- merge(dd1, dd2, ...) # as above
> ddd <- dd[,-1]
> rownames(ddd) <- dd$Var1
> t(ddd)
( 2 1 1 ) ( 1 1 1 ) ( 1 1 0 ) ( 1 1 1 ) ( 0 1 1 ) ( 0 1 1 )
Freq.x 1 3 29
Freq.y NA NA 93
( 2 1 1 ) ( 0 1 1 ) ( 1 1 0 ) ( 0 1 1 ) ( 2 1 0 ) ( 0 1 1 )
Freq.x 54 58 NA
Freq.y 2 NA 54