首页 文章

根据R中的rownames合并数据帧

提问于
浏览
44

如何合并两个数据框的列,包含一组不同的列,但某些行具有相同的名称?两个数据框中不出现的行的字段应填充零:

> d
    a   b   c   d   e   f   g   h   i  j
1 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10
2 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9  1
> e
   k  l  m  n  o  p  q  r  s  t
1 11 12 13 14 15 16 17 18 19 20
3 21 22 23 24 25 26 27 28 29 30
> de
    a   b   c   d   e   f   g   h   i  j  k  l  m  n  o  p  q  r  s  t
1 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10 11 12 13 14 15 16 17 18 19 20
2 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9  1  0  0  0  0  0  0  0  0  0  0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  0 21 22 23 24 25 26 27 28 29 30

1 回答

  • 78

    ?merge

    名称“row.names”或数字0指定行名称 .

    例:

    R> de <- merge(d, e, by=0, all=TRUE)  # merge by row names (by=0 or by="row.names")
    R> de[is.na(de)] <- 0                 # replace NA values
    R> de
      Row.names   a   b   c   d   e   f   g   h   i  j  k  l  m  n  o  p  q  r  s
    1         1 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10 11 12 13 14 15 16 17 18 19
    2         2 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9  1  0  0  0  0  0  0  0  0  0
    3         3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0  0 21 22 23 24 25 26 27 28 29
       t
    1 20
    2  0
    3 30
    

相关问题