如何根据某些条件合并两个数据帧?

时间:2014-03-06 20:06:41

标签: r variables merge dataframe

我有一个名为PATIENTS的数据框,如下所示:

  ID   ARR_DATETIME
  1    2013-01-01 03:00:00
  2    2013-05-12 01:00:00
  3    2013-06-23 14:00:00

我有一个名为CENSUS的rdataframe,它看起来像这样:

  DATETIME              COUNT
  2013-01-01 01:00:00    4
  2013-01-01 02:00:00    5
  2013-01-01 03:00:00    9
  ...
  2013-05-12 01:00:00    8
  ...
  2013-06-23 14:00:00   6

我想要的是根据只有DATETIME与ARR_DATETIME匹配的条件语句,在我的PATIENTS数据框中添加另一列“COUNT”。

  ID   ARR_DATETIME           COUNT
  1    2013-01-01 03:00:00    9
  2    2013-05-12 01:00:00    8
  3    2013-06-23 14:00:00    6

我实现了一个嵌套的for循环,但由于我的数据大小,它几乎需要永远。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我相信您正在寻找使用合并功能。

CENSUS
DATETIME         COUNT
1/1/2013 4:00        9
1/1/2013 5:00        8
1/1/2013 6:00        3
1/1/2013 7:00        7

PATIENTS
name        ARR_DATETIME
Joe A.     1/1/2013 7:00
Pat J.     1/1/2013 5:00
Thomas L.  1/1/2013 6:00

# EDIT :: I DID NOT PUT QUOTATIONS AROUND THE by.x & by.y arguments.
# TRY THIS
merge(PATIENTS, CENSUS, by.x = 'ARR_DATETIME', by.y = 'DATETIME')

答案 1 :(得分:0)

合并(PATIENTS,CENSUS,by.x =“ARR_DATETIME”,by.y =“DATETIME”)

但你必须确保ARR_DATETIME& DATETIME采用字符格式,而不是Date对象。