r-通过行/ rbind表合并表格不同的列长度/名称

  • 本文关键字:名称 合并 rbind 表格 r merge
  • 更新时间 :
  • 英文 :


我已经有许多表格,其中包含时间序列分析中的不同arima-orima。一个简短的例子就是这样:这两个表是订单1和订单2包含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

在上一步中,两个表按排序(顺序1(和Sort(order2(

我想通过行合并两个表格,以获得一个"大"表与两个行。我的预期输出应该是这样的:

          (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

我尝试了合并或rbind之类的东西,但它行不通。

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

最新更新