如何通过两个条件将变量值从一个数据帧传输到另一个数据帧?

时间:2014-04-06 09:52:00

标签: r merge dataframe transfer

我有两个数据如下。我希望按日期和代码将第一个数据帧中的更改值传输到第二个数据帧。

> a
    date       code            change
 1 2013-12-27 000586 0.990099012851715
 2 2013-12-26 000616  9.97067451477051
 3 2013-12-25 300295  10.0013799667358
 4 2013-12-23 000968  -8.1564245223999
 5 2013-12-19 600023  60.5786628723145
 6 2013-12-18 600855 -7.69696950912476

> b

     code    date       company
 1 000586 2013-12-27       a
 2 000616 2013-12-26       b
 3 300295 2013-12-25       c
 4 000968 2013-12-23       d
 5 600023 2013-12-19       a
 6 600023 2013-12-19       b
 7 600855 2013-12-18       c

最终结果如下:

> c
      code       date company change
1 000586 2013-12-27       a    0.990099012851715
2 000616 2013-12-26       b      9.97067451477051
3 300295 2013-12-25       c     10.0013799667358
4 000968 2013-12-23       d      -8.1564245223999
5 600023 2013-12-19       a     60.5786628723145
6 600023 2013-12-19       b     60.5786628723145
7 000586 2013-12-27       b      0.990099012851715

怎么能得到这个?

1 个答案:

答案 0 :(得分:0)

您还可以使用bmatch数据框添加新列,而不是创建新的数据框:

b$change <- a$change[match(b$code,a$code)]